在Python中将图像名称扩展名从.PNG转换为.png

0 投票
6 回答
891 浏览
提问于 2025-04-17 03:20

我有一大堆图片,文件名都是以 .PNG 结尾的(比如 image00.PNG)。我想把它们转换成小写的 .png 格式。我在网上找到了一个脚本,但我运行不了。

这是我找到的脚本:

files = os.listdir(cur_dir)
for filename in files:
    file_ext = os.path.splitext(filename)[1]
    if old_ext == file_ext:
        newfile = filename.replace(old_ext, new_ext)
        os.rename(filename, newfile)

当我在终端运行这个脚本时,出现了错误:

NameError: name 'filename' is not defined

这可能是什么问题呢?

6 个回答

0

你应该把 old_ext 定义为 .PNG,把 new_ext 定义为 .png

0

如果当前的工作目录不是 cur_dir,那么就会出错。这是因为 os.listdir() 只返回文件名的列表,而不包含路径。所以你需要切换到

os.rename(os.path.join(cur_dir, filename), os.path.join(cur_dir, newfile))

这个目录。

5

试试这个,真的有效哦(可别把PNGX.PNG改成pngX.png哦;)

import os

files = os.listdir(".")
for filename in files:
    file_wo_ext, file_ext = os.path.splitext(filename)
    if file_ext == ".PNG":
        newfile = file_wo_ext + ".png"
        os.rename(filename, newfile)

撰写回答