Python實現(xiàn)復(fù)制圖片到指定文件夾并按順序重新命名
最近要做一個圖像生成的課題,在網(wǎng)上找了一個混合的數(shù)據(jù)集。這個數(shù)據(jù)集中一共有360個文件夾,然后文件夾中有6-9張不等的照片,我的目標(biāo)就是編寫python代碼將所有的照片取出來,放到一個指定的文件夾里,并且從1開始按照順序進(jìn)行編號。
該數(shù)據(jù)集有360個文件夾

每個文件夾下面有數(shù)量不等的照片:

解決代碼如下:
import os
import shutil
path1 = r"F:\cyclegan\新建文件夾\Dataset_Part1"
pic=os.listdir(path1)
k=0
for i in range(1,len(pic)):
path="F:/cyclegan/新建文件夾/Dataset_Part1"+"/"+str(i)
pic2 = os.listdir(path)
for j in range(1, len(pic2)):
k=k+1
shutil.copy(path+"/"+str(j)+".jpg", "F:/cyclegan/新建文件夾/zong" + "/" + str(k) + ".jpg")
使用兩個for循環(huán)即可解決問題:
1)os.listdir(path)方法用于返回指定的文件夾包含的文件或文件夾的名字的列表。這里輸入print(len(pics))就可以返回這個文件夾中文件的數(shù)量。
2)shutil.copy(path1,path2)把path1的文件復(fù)制到path2
3)寫path路徑的時候,如何其中存在循環(huán)的變量i作為名稱的話(比如1.jpg,2.jpg…),i前面一定要有str,不然會報錯(也就是將int型轉(zhuǎn)為str型)
當(dāng)然還遇到了另外一個問題,就是某個文件夾里的照片多了,我需要刪除一些。
比如2000+張?zhí)暨x344張,復(fù)制到另外一個文件夾。
代碼解決如下:
import os
import shutil
import random
path1 = r"F:\cyclegan\新建文件夾\zong2"
pic=os.listdir(path1)
j=0
for i in range(1,345):
number = random.randint(1,len(pic))
j=j+1
shutil.copy(path1 + "/" + str(number) + ".jpg", "F:/cyclegan/新建文件夾/testA" + "/" + str(j) + ".jpg")
1)這里使用隨機數(shù)進(jìn)行動態(tài)選擇 random。random.randint用來生成整數(shù)
2)shutil.copy依然是復(fù)制
到此這篇關(guān)于Python實現(xiàn)復(fù)制圖片到指定文件夾并按順序重新命名的文章就介紹到這了,更多相關(guān)Python復(fù)制圖片到指定文件夾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python判斷all函數(shù)輸出結(jié)果是否為true的方法
在本篇內(nèi)容里小編給各位整理的是一篇關(guān)于python判斷all函數(shù)輸出結(jié)果是否為true的方法,有需要的朋友們可以學(xué)習(xí)下。2020-12-12
python使用Tkinter顯示網(wǎng)絡(luò)圖片的方法
這篇文章主要介紹了python使用Tkinter顯示網(wǎng)絡(luò)圖片的方法,涉及Python操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-04-04
django 實現(xiàn)將本地圖片存入數(shù)據(jù)庫,并能顯示在web上的示例
今天小編就為大家分享一篇django 實現(xiàn)將本地圖片存入數(shù)據(jù)庫,并能顯示在web上的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08

