python заменить \\ на \ в строковом пути автоматически - PullRequest
0 голосов
/ 06 августа 2020

как я могу заменить "\" в строке пути на "\\" python, вы знаете, что \ - это escape-символ, а r'\' и r"\" также не работают, ни в str.replace(), ни в re.sub()

Ответы [ 4 ]

0 голосов
/ 06 августа 2020

Я только что понял, что наш путь для ie

path_str="E:\neural network\Pytorch"

можно изменить на

path_str=path_str.encode('unicode-escape').decode().replace('\\\\', '\\')

, и это также будет делать это автоматически, без необходимости вручную манипулировать строкой до

path_str=r"E:\neural network\Pytorch"
0 голосов
/ 06 августа 2020

из документации python: «Решение состоит в том, чтобы использовать нотацию исходных строк Python для шаблонов регулярных выражений; обратная косая черта не обрабатывается каким-либо особым образом в строковом литерале с префиксом 'r'. Итак, r" \ n " - это двухсимвольная строка, содержащая '' и 'n', а "\ n" - это односимвольная строка, содержащая новую строку. Обычно шаблоны выражаются в коде Python с использованием этой нотации необработанной строки. "

https://docs.python.org/3/library/re.html

ниже может быть то, что вы ищете:

x = r'это \ test 're.subn (' \\ ' , '\\', х)

0 голосов
/ 06 августа 2020

из стандартной библиотеки, вы можете использовать os.path.normpath

Пример:

import os
myDir = r"path\to\dir"
normalized = os.path.normpath(myDir)

Что дает следующие возможности:

>>> normalized
'path\\to\\dir'

>>> print(normalized)
path\to\dir

>>> str(normalized)
'path\\to\\dir'

>>> repr(normalized)
"'path\\\\to\\\\dir'"
0 голосов
/ 06 августа 2020

Если ваша цель - получить правильный путь, вы можете использовать необработанную строку:

r"C:\Users"
# will return
Out[2]: 'C:\\Users'
# in the console

#however if you print it, it will print this:
print(r"C:\Users")
C:\Users

, если вы хотите динамически комбинировать части пути, я рекомендую библиотеку os (стандартная библиотека)

используйте это так:

import os
path = os.path.join(r"first_part_of_path", r"other_part_of_path", "filename.xlsx")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...