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