我有一個包含幾個子檔案夾的檔案夾。這些包含不同的檔案。所有以“Red_Lines.png”結尾的檔案我想保存在另一個目錄中(我使用 Windows)。到目前為止,我的程式如下所示:
創建一個包含所有檔案名的串列:
import os
List = []
for root, Lists, files in os.walk("C:/Users/.../Old_Folder/"):
for name in files:
if name.endswith("Red_Lines.png"):
List.append(name)
創建具有完整路徑和檔案名的新串列:
k = []
for filename in List:
k.append(os.path.join("C:/Users/.../New_Folder", filename).replace("\\" , "/"))
最后保存圖片
from PIL import Image
for i in k:
img = Image.open(i)
img.save(i)
但是現在,我收到以下錯誤:
FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/.../New_Folder/123_Red_Lines.png'
錯誤訊息讓我感到困惑。當然檔案還不存在,我想創建它...
謝謝
uj5u.com熱心網友回復:
為什么不只使用命令列“復制”來復制檔案而不需要 PIL 模塊(示例代碼中的注釋 #2)。另一件事是,您的代碼找不到您要復制到的檔案(示例代碼中的注釋 #1)。
你可以試試這個:
import os
List = []
for root, Lists, files in os.walk("C:/Users/.../Old_Folder/"):
for name in files:
if name.endswith("Red_Lines.png"):
List.append(os.path.join(root, name)) # joining the root name
destinationFile = "C:/Users/.../New_Folder"
for filename in List:
os.system(f'copy "{filename}" "{destinationFile}"') # copy-command
uj5u.com熱心網友回復:
我認為您嘗試打開尚未在Image.open(i)中創建的檔案,其中您的i是新路徑。Image.open應該指的是Old_Folder
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/482804.html
上一篇:帶有pow函式的C “for”回圈給出了不正確的結果
下一篇:嵌套for回圈的串列索引超出范圍
