gpt4 book ai didi

python - 我需要编写一个 Python 脚本来对图片进行排序,我该怎么做?

转载 作者:行者123 更新时间:2023-11-28 22:49:58 25 4
gpt4 key购买 nike

我正在寻找的是一个可以遍历大量图片并将它们分类到文件夹中的脚本。

所以我在表演中拍摄狗的照片,假设我拍了几张狗 1 的照片,这张狗的照片自动以序列号格式命名(狗 1-1、狗 1-2、狗 1-3 等)。 Dog2 将遵循相同的格式。

我想要一个脚本,它可以将 Dog1-1-10 移动到名为 Dog 1 的文件夹中。将 Dog2-1-10 移动到名为 Dog 2 的文件夹中,等等。

这在 Python 中如何完成?

最佳答案

所以基本上,您想要做的是:

  1. 查找给定文件夹中的每个文件
  2. 取每个文件名的第一部分作为文件夹名
  3. 如果该文件夹不存在,则创建它
  4. 将文件移动到该文件夹​​
  5. 重复

嗯,漂亮!弄清楚我们想要做什么是成功的一半——现在,主要是谷歌搜索并将其转化为代码的问题。

首先,我们需要要 checkin 的文件夹:

folder_path = "myfolder"

现在,我们要查找该文件夹中的每个文件。一个快速的谷歌搜索 session 出现了 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)

关于python - 我需要编写一个 Python 脚本来对图片进行排序,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23178039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com