下面的代码工作正常,读取指定目录中的所有文本文件:
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')
或者指定您的字符串是原始字符串(意味着反斜杠不应被特殊解释):
files_ = glob.glob(r'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'
关于Python无法识别目录中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21247044/