[英]Python PIL save Image in directory no override if the name is same
我正在嘗試制作圖像的備份副本,因為它會經常調整大小。 我要求輸入圖像的路徑(Tkinter),然后在路徑和圖像上添加“原始”,並將其保存在從中獲取圖像的同一目錄中。
問題是每次我使用此功能時,它都會覆蓋原始功能,因為沒有循環使程序檢查是否已經存在帶有“ -original”的文件。
那就是我如何保存備份:
pfad = askopenfilename()
im_backup = Image.open(pfad)
start_string = pfad[:pfad.index(".")]
ende_string = pfad[pfad.index("."):]
im_backup.save(start_string + "-original" + ende_string)
目前,我正在使用可以工作的os解決方案,但我覺得它必須很簡單。 我修改了PIL.Image.save的文檔,可以傳遞更多的參數來保存,但是我不知道必須使用哪個參數來防止覆蓋。
我當前的解決方案(尚無法使用)正在使用os.listdir(directory)進行檢查,是否已經有一個(start_string +“ -original” + ende_string)文件,並且只有在它為false時才保存在那里。
提前致謝!
考慮使用os.path.splitxext
代替切片和索引。 您也可以使用os.path.isfile
代替listdir
。
import os
pfad = askopenfilename()
name, ext = os.path.splitext(pfad)
backup_name = name + "-original" + ext
if not os.path.isfile(backup_name):
im_backup = Image.open(pfad)
im_backup.save(backup_name)
通過將某些內容傳遞給.save()
機器人可能可以做您想要的事情。
文檔中可能使您認為有可能的事情是:
但是在源代碼中有幾行,
self.encoderinfo = params
self.encoderconfig = ()
其中所有選項都存儲在與編碼器相關的變量中,因此可能不是您想要的。
因此,您可能應該考慮執行@Kevin建議的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.