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

时间:2011-09-29 08:13:50

标签: python

我有大量带有.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

可能是什么问题?

5 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

如果当前工作目录不是cur_dir,则失败。那是因为os.listdir()只返回文件列表,没有路径。你应该改为

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

答案 2 :(得分:0)

您应该将old_ext定义为.PNG,将new_ext定义为.png

答案 3 :(得分:0)

让我们这样做:

import os
for filename in os.listdir(cur_dir):
    file_ext = os.path.splitext(filename)[1]
    if file_ext == '.PNG':
        newfile = filename.replace(file_ext, '.png')
        os.rename(cur_dir+'/'+filename, cur_dir+'/'+newfile)

答案 4 :(得分:-1)

这是一个python脚本。如果要使用python

,请执行以下操作
$ python
> import os
> old_ext = "PNG"
> new_ext = "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)
>
>
>exit()

但这种强硬态度可能无法发挥作用。

我会这样做

$ rename .PNG .png *.PNG

通过here