如何使用for循环和列表保存图像



我有一个包含几个子文件夹的文件夹。它们包含不同的文件。所有以"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'

错误信息使我困惑。当然这个文件还不存在,我想创建它…

感谢

为什么不直接使用命令行"复制您的文件,而不需要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

我认为您尝试打开未在中创建的文件Image.open(i)你的i是新的路径。Image.open应该指向Old_Folder

相关内容

  • 没有找到相关文章

最新更新