python - 将多个 .jpg 从一个目录移动到子目录中的子目录
问题描述
import os
import shutil
import glob
i = 0
Source = "L:\\source\\GIS\\Natural_Resource\\Trees\\TreeWatch\\2019\\TreePhotos"
destination = "L:\\source\\Natural Resources\\Tree_Folders\\MULTIPLE_TREE_NAMES\\Photos"
destination_list = os.listdir(Source)
data_dir_list = os.listdir(destination)
for fileName in destination_list:
if not os.path.isdir(os.path.join(Source, fileName)):
for prefix in data_dir_list:
if fileName.startswith(prefix):
shutil.move(os.path.join(Source, fileName),
os.path.join(destination, prefix, fileName))
print (fileName + " copied")`
i=i+1`
print ("Total Photos Copied:", i)
我正在尝试拍摄一个装满一年多照片的文件夹,根据照片标记为的数字将它们分开到正确的文件夹中,对应于“树”的编号,然后一旦它移入相应的编号文件夹在该文件夹中,我有一个照片文件夹,需要将特定“树”的照片放入其中。上面的代码将其移动到相应的编号文件夹,但我不知道如何将其放入照片文件夹能够循环退出并继续处理其他约 600 张照片
解决方案
将shutil.move
行替换为:
os.makedirs(os.path.join(destination, prefix, "photos"), exist_ok=True)
shutil.move(os.path.join(Source, fileName),
os.path.join(destination, prefix, "photos", fileName))
它应该可以工作。这基本上会创建一个名为“photos”的新文件夹,如果它尚不存在,并将文件移到那里。我希望这就是你想要的