如何使用 for-loop 和 list 保存图像
How to save images with for-loop and list
我有一个包含多个子文件夹的文件夹。这些包含不同的文件。所有以“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'
错误信息让我很困惑。当然文件还不存在,我想创建它...
谢谢
我认为您尝试打开未在 Image.open(i) 中创建的文件,其中您的 i 是新路径。 Image.open应该是指Old_Folder
为什么不只使用命令行“复制”来复制文件而不需要 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
我有一个包含多个子文件夹的文件夹。这些包含不同的文件。所有以“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'
错误信息让我很困惑。当然文件还不存在,我想创建它...
谢谢
我认为您尝试打开未在 Image.open(i) 中创建的文件,其中您的 i 是新路径。 Image.open应该是指Old_Folder
为什么不只使用命令行“复制”来复制文件而不需要 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