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

时间:2014-01-21 00:42:42

标签: python directory filepath glob

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

files_ = glob.glob('D:\Test files\Case 1\*.txt')

但是当我将路径更改为另一个目录时,它会给我一个空的文件列表:

files_ = glob.glob('D:\Test files\Case 2\*.txt')
print files_ >> []

两个目录都包含几个文本文件。但是文本文件名和大小不同。 它真的很有线,我想不出任何解决问题的方法。有没有人遇到这样的问题?

1 个答案:

答案 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'