可以使用os.listdir()找到文件,但无法读取

时间:2019-11-04 16:50:05

标签: python file-io

我正在制作一个程序,将许多图像组合成PDF,到目前为止,它一直有效。当我尝试另一个示例时,程序崩溃了。

我在调试器中查看,发现该文件无法被Python读取,因为它找不到该文件。我尝试使用os.listdir()在目录中查找所有文件,并且图像确实显示在此处。当我使用python的常规读取功能读取文件时,找不到文件。这特别令人讨厌,因为我用于制作PDF文件的模块img2pdf使用了此功能。因此,我无法对其进行更改以使其正常工作。它也使用open(filename,'rb'),所以我也不能更改它。

#Running os.listdir() returns the list, including the following image
print(os.listdir())
#Gives a FileNotFoundError
with open('sbr_color_v03_052_01.jpg', 'rb') as f:
    print(f.read())

os.listdir()的输出

['sbr_color_v03_037.jpg',
 'sbr_color_v03_038.jpg',
 'sbr_color_v03_039.jpg',
 'sbr_color_v03_040.jpg',
 'sbr_color_v03_041.jpg',
 'sbr_color_v03_042.jpg',
 'sbr_color_v03_043.jpg',
 'sbr_color_v03_044.jpg',
 'sbr_color_v03_045.jpg',
 'sbr_color_v03_046.jpg',
 'sbr_color_v03_047.jpg',
 'sbr_color_v03_048.jpg',
 'sbr_color_v03_049.jpg',
 'sbr_color_v03_050.jpg',
 'sbr_color_v03_051.jpg',
 'sbr_color_v03_052_01.jpg',
 'sbr_color_v03_052_02.jpg']

我将倒数第二个文件名复制粘贴到上面显示的open()函数中,因此它应该是相同的文件名 open()函数的输出

Traceback (most recent call last):
  File "C:\Users\Lars\AppData\Local\Programs\Python\Python37-32\lib\site-packages\IPython\core\interactiveshell.py", line 3267, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-20-06e5363219b6>", line 1, in <module>
    with open('sbr_color_v03_052_01.jpg', 'rb') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'sbr_color_v03_052_01.jpg'

0 个答案:

没有答案