我需要打开某个目录中的所有PDF,所以我首先使用os.path生成一个文件路径列表:
filenames = [
normpath(join(directoryname, filename))
for filename in listdir(directoryname)
if filename.lower().endswith('.'+extension)
]
因此该列表中的项目如下所示: d:\\文件夹\\ 2010 \\ file.pdf
然后我想在for循环中打开每个文件:
for file in filenames:
PdfFileReader(file(file, 'rb'))
但是2010年似乎存在问题,因为我收到了这个错误:
IOError: [Errno 2] No such file or directory: 'D:\\Folder\\x810\\file.pdf'
我想按照
的方式做点什么PdfFileReader(file(r'D:\\Folder\\2010\\file.pdf', 'rb'))
在上面的例子中,如何将路径作为变量传递? 或者有更好的方法吗?
我正在使用Windows和Python 2.6。
提前致谢!
答案 0 :(得分:13)
反斜杠在Python使用的C风格字符串中很特殊,就像在C ++,C#和Java中一样。使用双反斜杠说“是的,我的意思是反斜杠”,而不是字符代码\201
,或使用不解释反斜杠序列的r''
字符串:
'D:\\Folder\\2010\\file.pdf'
r'D:\Folder\2010\file.pdf'
请注意,此问题没有提出变量!正确创建字符串后,它始终保持其值;它不会被重新解释,并且每次将值传递给函数时,反斜杠都会再次引发问题,因此open(myvar)
应该看到与print(myvar)
完全相同的字符串。< / p>
(我认为在Windows上你也可以使用正斜杠,不需要特别引用:)
'D:/Folder/2010/file.pdf'
答案 1 :(得分:0)
Python会自动将正斜杠转换为Windows路径名中的反斜杠(这是因为运行Python的其他操作系统,包括Linux和Mac,本身使用正斜杠)。