Python无法识别目录中的文本文件

Python无法识别目录中的文本文件,python,directory,filepath,glob,Python,Directory,Filepath,Glob,以下代码工作正常,读取指定目录中的所有文本文件: files_ = glob.glob('D:\Test files\Case 1\*.txt') 但当我更改到另一个目录的路径时,它会给我一个空的文件列表: files_ = glob.glob('D:\Test files\Case 2\*.txt') print files_ >> [] 两个目录都包含两个文本文件。但文本文件名和大小不同。 这是真的有线和我想不出任何事情来解决这个问题。有人遇到过这样的问题吗?你需要避开你的反

以下代码工作正常,读取指定目录中的所有文本文件:

files_ = glob.glob('D:\Test files\Case 1\*.txt')
但当我更改到另一个目录的路径时,它会给我一个空的文件列表:

files_ = glob.glob('D:\Test files\Case 2\*.txt')
print files_ >> []
两个目录都包含两个文本文件。但文本文件名和大小不同。 这是真的有线和我想不出任何事情来解决这个问题。有人遇到过这样的问题吗?

你需要避开你的反斜杠:

files_ = glob.glob('D:\\Test files\\Case 2\\*.txt')
或者指定您的字符串为原始字符串(意味着不应专门解释反斜杠):

断开第二个
glob
的原因是
\1
变成了ASCII控制字符
\x01
。错误消息包含以下提示:

WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 'D:\\Test files\\B1\x01rgb/*.*'
请注意
\1
是如何变成文本的
\x01
。第一个目录工作的原因是您基本上很幸运,没有意外地指定任何特殊字符:

'\T'
Out[27]: '\\T'

'\B'
Out[28]: '\\B'

'\1'
Out[29]: '\x01'

该目录上的
os.listdir
的输出是什么?实际路径是
D:\Test files\B1\1rgb
os.listdir
给出错误:
WindowsError:[error 123]文件名、目录名或卷标语法不正确:“D:\\Test files\\B1\x01rgb/*.*”
您需要使用前斜杠,如
'D:/Test files/Case 2/*.txt'
,原始字符串前缀,如
r'D:\Test files\Case 2\*.txt'
,或转义字符串中的反斜杠字符,如Windows路径的
'D:\\Test files\\Case 2\\\*.txt'
。此外,如果它们包含空格字符,例如
r''D:\Test files\Case 2\*.txt,则可能还需要将它们括在双引号
字符中“
。谢谢@martineau,双反斜杠成功了。但是为什么一个反斜杠对第一个目录有效,而对另一个目录无效呢?目录名重要吗?@PyLearner:不确定您的意思--字符串中的所有反斜杠都需要加倍才能表示单个文字\字符。非常感谢您的解释:)
'\T'
Out[27]: '\\T'

'\B'
Out[28]: '\\B'

'\1'
Out[29]: '\x01'