【问题标题】:Creating Folders and Moving Images from a single folder using Python使用 Python 从单个文件夹创建文件夹和移动图像
【发布时间】:2020-04-13 03:21:05
【问题描述】:
您好,我有一个文件夹,其中包含 1000 张图片,所有图片都是 png。文件名是1.png、2.png、3.png……都最多1000个。
我不想手动制作10个子文件夹将图像复制并粘贴到每个子文件夹中,我想将前100个图像移动到文件夹1,第二批图像即101-200到文件夹2,201-300到文件夹 3 以此类推,直到文件夹 10。
是否有可能一些python代码可以解析图像名称并创建一个新文件夹并将相关图像移动到那里?
【问题讨论】:
标签:
python
parsing
shutil
【解决方案1】:
您可以使用 pathlib 执行此操作。此代码已在 python 3.8 中测试,但它也应该适用于其他版本。
from pathlib import Path
#0-99 (folder_0)
#100-199 (folder_1)
#...
MAX_FILES_PER_DIR = 100
pngDirectory = Path()
pngFiles = pngDirectory.glob('*.png') #find all png files in directory
for pngFile in pngFiles:
fileNumber = int(pngFile.name.split('.')[0]) #get number from filename
folderNumber = int(fileNumber / MAX_FILES_PER_DIR) #find which folder it belongs in
#create folder to put files in and mkdir if it doesn't exist
currentFolder = pngDirectory / "folder_{}".format(folderNumber)
if not currentFolder.exists():
currentFolder.mkdir()
#move your png file into that folder
pngFile.rename(currentFolder / pngFile.name)
【解决方案2】:
您可以查看pathlib,它提供了循环遍历文件夹内容的方法。
使用 Path.iterdir() 您应该能够遍历您的图像。使用 Path.mkdir() 你应该能够创建你想要的文件夹。对于移动文件,您可以使用Path.replace()。
或者,您可以使用系统命令通过os.system 执行此操作。