Преобразовать обратную косую черту, чтобы Слэш в Python
Привет Я читал статьи, связанные с преобразованием назад в прямые косые черты. Но Сол должен был использовать сырую строку.
но проблема в моем случае это :
Я получу путь к файлу динамически к переменной ВАР='C:dummy_foldera.txt' В этом случае мне нужно преобразовать его в косые черты. Но из-за "a " я не могу преобразовать в косые черты
как его преобразовать? Или как мне изменить эту строку на raw string, чтобы я мог изменить ее на forward Слэш!--1-->
5 ответов
Не делай этого. Просто используйте os.путь и пусть он справиться со всем. Не следует явно устанавливать косую черту вперед или назад.
>>> var=r'C:\dummy_folder\a.txt'
>>> var.replace('\', '/')
'C:/dummy_folder/a.txt'
но опять же, не надо. Просто используйте os.путь и быть счастливым!
появилась os.путь.normpath (), который преобразует обратные косые черты и косые черты в зависимости от локальной ОС. Пожалуйста, смотрите здесь для получения подробной информации об использовании. Вы бы использовали его таким образом:
>>> string = r'C:/dummy_folder/a.txt'
>>> os.path.normpath(string)
'C:\dummy_folder\a.txt'
обработка путей как простая строка может поставить вас в неприятности.; даже больше, если путь, который вы обрабатываете, является пользовательским вводом или может изменяться непредсказуемым образом.
разные ОС имеют разные способы выражения пути к данному файлу, и каждый современный язык программирования имеет собственные методы для обработки путей и ссылок на файловую систему. Конечно, у Python и Ruby есть это:
- Python:os.путь
- Руби: и пакета fileutils
Если вам действительно нужно обрабатывать строки:
- Python: строка.заменить
- Ruby: строка.gsub
необработанные строки предназначены для строковых литералов (написанных непосредственно в исходном файле), что здесь не так. В любом случае косые черты не являются специальными символами-они могут быть встроены в обычную строку без проблем. Это обратные косые черты, которые обычно имеют другое значение в строке и должны быть "экранированы", чтобы они интерпретировались как литеральные обратные косые черты.
чтобы заменить обратные косые черты косыми чертами:
# Python:
string = r'C:\dummy_folder\a.txt'
string = string.replace('\', '/')
# Ruby:
string = 'C:\dummy_folder\a.txt'
string = string.gsub('\', '/')
>>> 'C:\dummy_folder\a.txt'.replace('\', '/')
'C:/dummy_folder/a.txt'
в строковом литерале вам нужно избежать \
символ.