我正在尝试让os.walk()在我正在处理的程序中工作,但我一直收到错误: ValueError:invalid \ x escape
通过在线浏览,我发现错误可能源于不使用原始字符串。 但是,我仍然一直收到错误......
import os
path = r'D:\Data\Tracking\'
for root, dirs, files in os.walk(path):
print root
print dirs
print files
任何人都知道我可以做些什么来让它起作用?
答案 0 :(得分:1)
我有点惊讶你得到的是ValueError
...但是请注意问题是尾随'
。
>>> path = r'D:\Data\Tracking'
>>> path = r'D:\Data\Tracking\'
File "<stdin>", line 1
path = r'D:\Data\Tracking\'
^
SyntaxError: EOL while scanning string literal
有关变通方法,请参阅Why can't a raw string end in an odd number of trailing backslashes
我最喜欢的是:
>>> path = r'D:\Data\Tracking' '\\'
使用自动字符串连接文字。
答案 1 :(得分:1)
尝试使用\\
来阻止上一个反斜杠转义之后的报价。
>>> path = r'D:\Data\Tracking\'
File "<input>", line 1
path = r'D:\Data\Tracking\'
^
SyntaxError: EOL while scanning string literal
>>> path = r'D:\Data\Tracking\\'
>>> print(path)
D:\Data\Tracking\\
您可以在没有原始字符串的情况下执行此操作以获取所需的确切字符串:
>>> path = 'D:\\Data\Tracking\\'
>>> print(path)
D:\Data\Tracking\