Как предотвратить автоматическое экранирование специальных символов в Python
m написание скрипта Python, который принимает пути к файлам в виде строк, анализирует их, добавляет имя команды и создает список, который затем передаетсяsubprocess.Popen()
для выполнения. Этот сценарий предназначен для обработки путей к файлам как в Unix, так и в Windows, и в конечном итоге должен работать в обеих системах.
Когда я запускаю это в Unix, если я даю путь Windows, который непреднамеренно содержит escape-символ (например,\Users\Administrator\bin
), Python будет интерпретировать встроенный\b
в качестве символа возврата. Я хочу предотвратить это.
Насколько я знаю, тамНет функции или метода для обозначения строковой переменной как необработанной строки.'r'
Модификатор работает только для строковых констант.
Пока что самый близкий ямы смогли получить это:
winpath = "C:\Users\Administrator\bin"
winpath = winpath.replace('\b','\\b')
winpathlist = winpath.split('\\')
На этом этапе winpathlist должен содержать['C:','Users','Administrator','bin']
нет['C','Users','Administrator\x08in']
Я могу добавить дополнительные звонкиwinpath.replace()
чтобы справиться с другими побегами, которые я мог бы получить -\a
\f
\n
\r
\t
\v
-- но нет .\x
Есть ли более питонный способ сделать это?