在Python中将图像扩展名从.PNG转换为.PNG
我有大量扩展名为.PNG的图像(比如image00.PNG)。我想把它转换成.png(小写)。我从网上得到了一个脚本,但无法处理 以下是脚本:在Python中将图像扩展名从.PNG转换为.PNG,python,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)
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
可能是什么问题?如果当前工作目录不是
cur\u dir
,它将失败。这是因为os.listdir()
只返回文件名列表,而不返回路径。你应该换成
os.rename(os.path.join(cur_dir, filename), os.path.join(cur_dir, newfile))
.如果当前工作目录不是
cur\u dir
,则会失败。这是因为os.listdir()
只返回文件名列表,而不返回路径。你应该换成
os.rename(os.path.join(cur_dir, filename), os.path.join(cur_dir, newfile))
.PNG您应该将
old_ext
定义为.PNG
和new_ext
定义为.PNG您应该将old_ext
定义为.PNG
和new_ext
定义为.PNG>.PNG>.PNG>.PNG>试试这个,它确实有效(不要将PNGX.PNGX.PNG重命名为PNGX.PNG.):
试试这个,它是真的(不要将PNGX.PNG重命名为PNGX.PNG;):
这是一个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
这是一个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
通过让我们这样做:
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)
让我们这样做:
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)
问题是你没有向我们展示真实的代码。当运行你发布的代码时,我发现“old_ext”没有定义,这是真的……向我们展示真实的代码;)现在,查看显示行号的回溯并开始调试。顺便说一句,我还得到了一个名称错误:除上述内容外,没有定义名称“os”。)问题是你没有向我们展示真实的代码。当运行你发布的代码时,我发现“old_ext”没有定义,这是真的……向我们展示真实的代码;)现在,查看显示行号的回溯并开始调试。顺便说一句,我还得到了一个名称错误:除上述内容外,没有定义名称“os”。)哎哟这可能是一个以后肯定会出现的错误(为什么我让它作为答案出现在那里)——但这不是问题所在。哎哟!这可能是一个稍后肯定会出现的错误(为什么我会让它出现作为一个答案)-但这不是问题所在。我认为最后一行将抛出WindowsError:
,您需要附加父目录路径。您还需要用newfile附加父目录路径,否则在重命名过程中会将文件移动到当前工作目录。@AamirAdnan:我用当前目录下的PNG文件测试了脚本,它重命名了所有文件,也许有一个案例我没有看到。我想最后一行将抛出windowsrerror:
,您需要附加父目录路径。您还需要用newfile附加父目录路径,否则在重命名过程中会将文件移动到当前工作目录。@AamirAdnan:我用当前目录下的PNG文件测试了脚本,它重命名了所有文件,但出现了错误,可能是我没有看到的情况。