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

2024-09-22 20:37:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个程序,将大量图像合并成一个PDF文件,到目前为止效果还不错。当我尝试另一个例子时,程序坏了

我查看了调试器,发现Python无法读取该文件,因为它找不到该文件。我试着使用os.listdir()来查找目录中的所有文件,但图像确实显示在这里。当我使用python的普通read函数读取文件时,它找不到该文件。这尤其恼人,因为我用来制作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'

Tags: 文件the函数图像程序readpdfos