我正在寻找的是一个脚本,可以通过一个巨大的图片列表并将它们分类到文件夹中。我需要编写一个Python脚本来排序图片,我该怎么做?
因此,我在展会上为狗拍照,因此可以说我拍了几张dog1照片,这张狗照片是以序列号格式(Dog1-1,Dog1-2,Dog1-3等)自动命名的。 Dog2将遵循相同的格式。
我想一个脚本,可以采取Dog1-1-10并将其移动到一个名为狗1 Dog2-1-10到一个名为狗2文件夹文件夹等
这怎么可能在Python中完成?
我正在寻找的是一个脚本,可以通过一个巨大的图片列表并将它们分类到文件夹中。我需要编写一个Python脚本来排序图片,我该怎么做?
因此,我在展会上为狗拍照,因此可以说我拍了几张dog1照片,这张狗照片是以序列号格式(Dog1-1,Dog1-2,Dog1-3等)自动命名的。 Dog2将遵循相同的格式。
我想一个脚本,可以采取Dog1-1-10并将其移动到一个名为狗1 Dog2-1-10到一个名为狗2文件夹文件夹等
这怎么可能在Python中完成?
所以基本上,你想要做的是:
呃,漂亮!弄清楚我们想要做的是战斗的一半 - 现在,这主要是一个谷歌搜索并将其转化为代码的问题。
首先,我们需要的文件夹办理入住手续:
folder_path = "myfolder"
现在,我们要找出该文件夹内的所有文件。快速谷歌搜索会轮番上涨this:
import os
import os.path
images = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
顺便说一句,我将使用os.path.join
公平一点,所以你可能要对他们做的简单读了。你在评论中链接到的指南涵盖了它相当好。
现在,我们需要每个名称的第一部分。我会假设我们会将第一个短划线的所有内容作为文件夹名称处理,而忽略其余部分。要做到这一点的方法之一是使用string.split
,其将通过给定的字符字符串转换成字符串列表,并抓住第一个元素:
for image in images:
folder_name = image.split('-')[0]
现在,如果该文件夹不存在,我们希望创造它。再次,google is our friend:
new_path = os.path.join(folder_path, folder_name)
if not os.path.exists(new_path):
os.makedirs(new_path)
最后,我们move the original image:
import shutil
old_image_path = os.path.join(folder_path, image)
new_image_path = os.path.join(new_path, image)
shutil.move(old_image_path, new_image_path)
全部放在一起:
import os
import os.path
import shutil
folder_path = "test"
images = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
for image in images:
folder_name = image.split('-')[0]
new_path = os.path.join(folder_path, folder_name)
if not os.path.exists(new_path):
os.makedirs(new_path)
old_image_path = os.path.join(folder_path, image)
new_image_path = os.path.join(new_path, image)
shutil.move(old_image_path, new_image_path)
什么都__you__试过吗? – sshashank124
我试过按照本指南 [自动化常见任务](http://www.pythonlearn.com/html-007/cfbook016.html) 我根本没有Python经验,所以任何指南或链接导游将是非常有益的。 – user3553113