python按順序重命名文件并分類轉(zhuǎn)移到各個文件夾中的實現(xiàn)代碼
系統(tǒng)
ubuntu20.04
工具
python
要求
文件夾中有22個子文件夾,每個子文件又包含56個文件,要求將每個子文件夾中的第一個文件放到一個新文件夾中,第二個放一個新的中,一直到最后。
解決方案
1.復制源文件
import os import shutil #源文件路徑 source_path='......' #復制的新文件的路徑 copy_source_path='.....' #直接復制過去的話,經(jīng)常會提示文件存在,所以加個判斷語句 #判斷路徑是否存在源文件,如果有則刪除 if os.path.exists(copy_source_path): shutil.rmtree(copy_source_path) #復制文件過去 shutil.copytree(source_path,copy_source_path)
保留源文件可以增加自己操作的容錯性,并可以檢查自己操作是否滿足要求,當然也可以直接復制粘貼源文件
2.創(chuàng)建新文件夾
def creat(files):
#創(chuàng)建名稱為1~56的新文件夾
for i in range(1,57):
#判斷路徑是否存在同名文件夾,如果沒有則創(chuàng)建
if not os.path.exists(files +'/' +str(i)):
os.makedirs(files +'/' +str(i))
#輸入路徑
creat('......')
3.按順序命名并轉(zhuǎn)移到新文件中
#上面新文件夾所在路徑
target_path='.......'
#總文件夾路徑
for file in os.listdir(copy_source_path):
j=1
#拼接出文件完整路徑
source_path_1=os.path.join(copy_source_path,file)
source_list=os.listdir(source_path_1)
#對獲取的文件名排序,否則是亂序修改
source_list_1=sorted(source_list)
#子文件夾路徑
for file_1 in source_list_1:
#源文件地址,這里的源文件我用的是復制的文件
oldname_path=os.path.join(source_path_1,file_1)
#新文件夾路徑
for file_2 in os.listdir(target_path):
if str(j)==file_2:
target_path_1=os.path.join(target_path,file_2)
#新文件路徑以及新名稱,這里新名稱我是用的子文件名+文件序號+文件原來名稱,而上面的判斷語句就是判斷文件序號與新文件夾名稱是否相同
newname_path=os.path.join(target_path_1,file +'-'+str(j)+'-'+file_1)
#renamen指令不僅能重新命名而且不保留源文件以達到轉(zhuǎn)移的目的
os.rename(oldname_path,newname_path)
#要對每個子文件夾中的文件順序命名,注意j所在的循環(huán),不要放錯
j+=1
到此這篇關(guān)于python按順序重命名文件并分類轉(zhuǎn)移到各個文件夾中的實現(xiàn)代碼的文章就介紹到這了,更多相關(guān)python重命名文件并分類轉(zhuǎn)移到各個文件夾中內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中的os.mkdir和os.makedirs的使用區(qū)別及如何查看某個模塊中的某些字母開頭的屬性方法
這篇文章主要介紹了python中的os.mkdir和os.makedirs的使用區(qū)別及如何查看某個模塊中的某些字母開頭的屬性方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
Python操作Access數(shù)據(jù)庫基本步驟分析
這篇文章主要介紹了Python操作Access數(shù)據(jù)庫基本步驟,結(jié)合實例形式詳細分析了Python針對access操作的具體步驟與相關(guān)注意事項,需要的朋友可以參考下2016-09-09

