簡體   English   中英

在 Python 中將目錄中的所有文件(.jpg 到 .png)轉換

[英]Converting all files (.jpg to .png) from a directory in Python

我正在嘗試將目錄中的所有文件從 .jpg 轉換為 .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

我期待循環遍歷我所有的 .jpg 文件並將它們轉換為 .png 文件。 到目前為止,我只使用了 1 個名稱:'img11.png',我還沒有成功構建出能夠寫出足夠名稱的東西。

print(os.path.join(directory, filename))工作,它打印我所有的文件,但關於轉換部分,它只適用於 1 個文件。

你們有什么想法可以幫助我完成整個過程嗎?

您可以將打開的圖像轉換為 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

您明確地將每個文件保存為img11.png 您應該獲取jpg文件的名稱,然后使用它來命名和保存png文件。

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

我會使用 os.rename() 函數,如下所示。

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

請讓我知道這是否是您想要的。 在應用到預期文件夾之前,嘗試在測試文件夾中復制一些圖像的代碼。 祝一切順利。

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

請試試這個,讓我知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM