Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将图像扩展名从.PNG转换为.PNG_Python - Fatal编程技术网

在Python中将图像扩展名从.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)

我有大量扩展名为.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

可能是什么问题?

如果当前工作目录不是
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文件测试了脚本,它重命名了所有文件,但出现了错误,可能是我没有看到的情况。