我有大量带有.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
可能是什么问题?
答案 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