以下代码可以正常工作,读取指定目录中的所有文本文件:
files_ = glob.glob('D:\Test files\Case 1\*.txt')
但是当我将路径更改为另一个目录时,它会给我一个空的文件列表:
files_ = glob.glob('D:\Test files\Case 2\*.txt')
print files_ >> []
两个目录都包含几个文本文件。但是文本文件名和大小不同。 它真的很有线,我想不出任何解决问题的方法。有没有人遇到这样的问题?
答案 0 :(得分:2)
你需要逃避你的反斜杠:
files_ = glob.glob('D:\\Test files\\Case 2\\*.txt')
或指定您的字符串是 raw 字符串(意味着不应特别解释反斜杠):
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'