[英]I need to write a Python script to sort pictures, how would I do this?
我要尋找的是一個可以瀏覽大量圖片並將其分類到文件夾中的腳本。
因此,我在展覽會上為狗拍照,可以說我為dog1拍了幾張照片,該狗的照片會自動以序列號格式命名(Dog1-1,Dog1-2,Dog1-3等)。 Dog2將采用相同的格式。
我想要一個腳本,可以將Dog1-1-10移入名為Dog 1的文件夾中。Dog2-1-10移至名為Dog 2的文件夾中,依此類推。
如何在Python中完成?
因此,基本上,您想做的是:
好吧,好漂亮! 弄清楚我們想要做的事是成功的一半-現在,這主要是谷歌搜索並將其轉換為代碼的問題。
首先,我們需要文件夾來簽入:
folder_path = "myfolder"
現在,我們要查找該文件夾中的每個文件。 一個快速的谷歌搜索會話結果如下 :
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
一句,我將相當多地使用os.path.join
,因此您可能想簡要閱讀一下它的作用。 您在評論中鏈接的指南對此進行了很好的介紹。
現在,我們想要每個名稱的第一部分。 我假設我們會將第一個破折號之前的所有內容都視為文件夾名稱,而忽略其余的名稱。 一種實現方法是使用string.split
,它通過給定字符將字符串拆分為字符串列表,並獲取第一個元素:
for image in images:
folder_name = image.split('-')[0]
現在,如果該文件夾尚不存在,我們要創建它。 再次, google是我們的朋友 :
new_path = os.path.join(folder_path, folder_name)
if not os.path.exists(new_path):
os.makedirs(new_path)
最后,我們移動原始圖像 :
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.