-2

我试图让 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

任何人都知道我可以做些什么来让它发挥作用?

4

2 回答 2

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

有关解决方法,请参阅为什么原始字符串不能以奇数个尾随反斜杠结尾

我最喜欢的是:

>>> path = r'D:\Data\Tracking' '\\'

它使用文字的自动魔术字符串连接。

于 2013-05-02T19:53:57.607 回答
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\
于 2013-05-02T19:55:28.283 回答