【发布时间】:2014-02-10 09:25:32
【问题描述】:
下面这段代码工作正常,读取指定目录下的所有文本文件:
files_ = glob.glob('D:\Test files\Case 1\*.txt')
但是当我将路径更改为另一个目录时,它会给我一个空的文件列表:
files_ = glob.glob('D:\Test files\Case 2\*.txt')
print files_ >> []
两个目录都包含几个文本文件。文本文件的名称和大小是不同的。 它真的很连线,我想不出任何办法来解决这个问题。有人遇到过这样的问题吗?
【问题讨论】:
-
该目录上
os.listdir的输出是什么? -
实际路径是
D:\Test files\B1\1rgb和os.listdir给出错误:WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 'D:\\Test files\\B1\x01rgb/*.*' -
您需要使用正斜杠,如
'D:/Test files/Case 2/*.txt',原始字符串前缀,如r'D:\Test files\Case 2\*.txt',或转义字符串中的反斜杠字符,如'D:\\Test files\\Case 2\\*.txt'用于Windows 路径。此外,如果它们包含空格字符,您可能还需要将它们括在双引号"字符中,例如r'"D:\Test files\Case 2\*.txt"'。 -
感谢@martineau,双反斜杠完成了这项工作。但是为什么单个反斜杠适用于第一个目录,而不适用于另一个目录?目录名重要吗?
-
@PyLearner:不确定你的意思——字符串中的所有反斜杠都需要加倍才能表示单个文字 \ 字符。
标签: python directory filepath glob