Как предотвратить автоматическое экранирование специальных символов в Python
Я пишу скрипт 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
.
Есть ли более питонный способ сделать это?