从Python目录中转换所有文件(.jpg至.png)

时间:2019-07-26 10:16:38

标签: python python-3.x jupyter-notebook python-imaging-library

我正在尝试将目录中的所有文件从.jpg转换为.png。名称应保持不变,只是格式会改变。

我一直在做一些研究,并得出以下结论:

upvar 1

我期望循环遍历我所有的.jpg文件并将它们转换为.png文件。到目前为止,我只使用了一个名称:“ img11.png”,但我还没有成功构建能够写出适当名称的东西。

from PIL import Image import os directory = r'D:\PATH' for filename in os.listdir(directory): if filename.endswith(".jpg"): im = Image.open(filename) im.save('img11.png') print(os.path.join(directory, filename)) continue else: continue 可以工作,它可以打印我的所有文件,但是关于转换部分,它只能处理1个文件。

你们有什么想法可以帮助我完成整个过程吗?

4 个答案:

答案 0 :(得分:2)

您正在将每个文件明确保存为img11.png。 您应该获取jpg文件的名称,然后使用它来命名并保存png文件。

name = filename[:-4]
im.save(name + '.png')

答案 1 :(得分:1)

我本可以使用os.rename()函数,如下所示。

import os 
directory = r'D:\PATH' 
for filename in os.listdir(directory):
    prefix = filename.split(".jpg")[0]
    os.rename(filename, prefix+".png")

请告诉我您是否要这样做。在将代码复制到测试文件夹之前,请在测试文件夹中尝试使用其中包含一些复制图像的代码。一切顺利。

答案 2 :(得分:0)

您可以将打开的图像转换为RGB,然后可以将其保存为任何格式。 您可以尝试以下代码:

from PIL import Image
import os

directory = r'D:\PATH'
c=1
for filename in os.listdir(directory):
    if filename.endswith(".jpg"):
        im = Image.open(filename)
        name='img'+str(c)+'.png'
        rgb_im = im.convert('RGB')
        rgb_im.save(name)
        c+=1
        print(os.path.join(directory, filename))
        continue
    else:
        continue

答案 3 :(得分:0)

from PIL import Image 
import os directory = r'D:\PATH' 
for filename in os.listdir(directory): 
    if filename.endswith(".jpg"): 
        prefix = filename.split(".jpg")[0]
        im = Image.open(filename)
        im.save(prefix+'.png')  
    else: 
        continue

请尝试这个,让我知道。