Преобразовать обратную косую черту, чтобы Слэш в 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: строка.заменить
  • 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'

в строковом литерале вам нужно избежать \ символ.