Python ';FileNotFoundError:[Errno 2]没有这样的文件或目录';尝试将目录中的图像从JPG转换为PNG文件时
我是Python新手,我正在尝试将我的文件(JPG)中的所有图像转换为PNG格式 我正在使用以下代码:Python ';FileNotFoundError:[Errno 2]没有这样的文件或目录';尝试将目录中的图像从JPG转换为PNG文件时,python,operating-system,Python,Operating System,我是Python新手,我正在尝试将我的文件(JPG)中的所有图像转换为PNG格式 我正在使用以下代码: from PIL import Image import os #Image directory directory = "D:\\weeds" for filename in os.listdir(directory): if filename.endswith(".jpg"): prefix = filename.sp
from PIL import Image
import os
#Image directory
directory = "D:\\weeds"
for filename in os.listdir(directory):
if filename.endswith(".jpg"):
prefix = filename.split(".jpg")[0]
im = Image.open(filename)
im.save(prefix+'.png')
else:
continue
但是,会生成以下错误:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-26-871d84dccfb2> in <module>
7 if filename.endswith(".jpg"):
8 prefix = filename.split(".jpg")[0]
----> 9 im = Image.open(filename)
10 im.save(prefix+'.png')
11 else:
~\lib\site-packages\PIL\Image.py in open(fp, mode)
2876
2877 if filename:
-> 2878 fp = builtins.open(filename, "rb")
2879 exclusive_fp = True
2880
FileNotFoundError: [Errno 2] No such file or directory: 'weed0.jpg'
---------------------------------------------------------------------------
FileNotFoundError回溯(最近一次调用上次)
在里面
7如果filename.endswith(“.jpg”):
8 prefix=filename.split(“.jpg”)[0]
---->9 im=Image.open(文件名)
10即时保存(前缀+'.png')
11其他:
~\lib\site packages\PIL\Image.py处于打开状态(fp,模式)
2876
2877如果文件名:
->2878 fp=builtins.open(文件名为“rb”)
2879排他_fp=真
2880
FileNotFoundError:[Errno 2]没有这样的文件或目录:“weed0.jpg”
此图像清晰地显示在我的目录中:
如何修复此错误,并将所有JPG图像转换为PNG?问题在于
os.listdir
提供了叶文件名。它不会提供完整的路径。例如,在您的情况下,目录是“D:\\weeds”
,因此来自os.listdir
的任何结果都会为您命名“foo”
或“bar”
,而不是“D:\\weeds\foo”
。为了从任何工作目录中使用os.listdir
的结果,您需要使用os.path.join
和“D:\\weeds”
组成完整、正确的路径。谢谢。在我的代码中,是否将os.listdir(D:\\weeds)
替换为os.path.join(D:\\weeds)
?我不知道该把它放在哪里,因为我是os
模块的新手。不,os.path.join
返回一个新路径,然后可以传递给open
函数,比如Image.open(os.path.join(“D:\\weed”,filename))