Вопрос

Я создаю программу, которая запрашивает путь, а пути Windows содержат обратную косую черту, которая может быть интерпретирована python как escape-последовательность, если буква рядом с ней неправильная.Я попробовал string.replace(), но это не работает, так как эти обратные косые черты преобразуются в escape-последовательности перед выполнением функции replace.

Есть ли способ удалить их и, возможно, сделать их / вместо \?

Это было полезно?

Решение

Если вы запрашиваете у пользователя ввод, то a \ правильно войдет в строку как a \.Только если вы затем каким-то образом произведете оценку пользовательской строки, обратная косая черта будет считаться экранирующим символом.Вам действительно нужно беспокоиться об экранировании только тогда, когда вы пишете строки внутри кода.

Другие советы

Нет, обратная косая черта не интерпретируется как escape-последовательность, кроме как в Python исходный код.Если вы не вычисляете () путь, что было бы неправильно, я не уверен, почему у вас возникла бы проблема.

Используйте двойной \

str = 'c:\\dir\\file.txt'

print str.replace('\\','/')
print str

вот нам выходные данные

c:/dir/file.txt
c:\dir\file.txt
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top