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

标签 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 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/

相关文章:

python - 弃用警告 : Call to deprecated function get_sheet_by_name (Use wb[sheetname])

python - 如果位置是偶数,如何从以前的列表创建一个新列表,其中将元素添加到它们的位置?

python - 从字符开始重复的点开始的字符串的子串

ios - 尽管文件位于 Documents 目录中,但资源路径返回 nil 文件路径

c# - 如何获取应用程序的路径(没有app.exe)?

python - Scipy 树状图叶节点排序

android - 嵌套目录创建者 : Phonegap

python - 解析目录和所有子目录中的所有 XML 文件

c# - 在列表框中显示目录中的单词文件列表 (Asp.net c#)

java - 我的程序在 Eclipse 中读取 .txt 文件,但当我导出为 .jar 时却无法读取?