我正在尋找的是一個腳本,可以通過一個巨大的圖片列表並將它們分類到文件夾中。我需要編寫一個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