您好,登錄后才能下訂單哦!
0 前言
大概是三個月前,有個人找我說要我?guī)兔憥仔写a,功能是把一個文件夾里面的所有文件拆分成 200 個文件一個文件夾,很簡單的。
我理解了之后,覺得還是挺簡單的,花了半個小時寫出來了,代碼也不多,代碼和思路都可以分享一下。
1 環(huán)境說明
Win10 系統(tǒng)下 Python3,編譯器是 Pycharm。
需要安裝 shutil 這個第三方庫,直接 pip install shutil 就可以了。
2 代碼
先導(dǎo)入需要用到的庫,os 是用來切換路徑和創(chuàng)建文件夾的。
shutil 是用來復(fù)制黏貼文件的
import os from shutil import copy
i 用來計算文件數(shù)量,當(dāng) i 是 200 的倍數(shù)時,k 會 +1;k 用來計算新建文件夾的數(shù)量,方便創(chuàng)建文件夾。
save_dir 是想把復(fù)制出來的文件存放在的路徑
# i 用來計算文件數(shù)量,k 用來計算新建文件夾的數(shù)量 i = 0 k = 0 # 想保存到的根路徑 save_dir = r'F:\666' # 如果目錄不存在,則創(chuàng)建 if not os.path.isdir(save_dir): os.makedirs(save_dir)
dir_name 是新的文件夾的命名;file_path 是想拆分的文件夾所在路徑,也就是一大堆文件所在的路徑。
os.listdir(file_path) 是獲取指定路徑下包含的文件或文件夾列表,在 Unix, Windows 下使用。
# 想保存的名字 dir_name = "junzi" # 想拆分的文件夾所在路徑 file_path = r'F:\ALL' # 獲取 file_path 下的文件和文件夾列表 # 因為 file_path 里面沒有文件夾,所以不處理有文件夾的情況 pathDir = os.listdir(file_path)
獲取到了列表,那就一個一個進行遍歷。0 是 200 的倍數(shù),所以一開始 k 的值會 +1 。
allDir 是文件的名字+后綴名。from_path 就是當(dāng)前這個被遍歷出來的文件的完整路徑,to_path是這個文件要復(fù)制到的路徑。
接著 copy(from_path, to_path) 完成復(fù)制黏貼,最后 i 自增1.
for allDir in pathDir: if( (i%200) == 0): print("200 的倍數(shù),新建一個文件夾") k += 1 print(allDir) from_path = os.path.join(file_path, allDir) to_path = save_dir + "\\" + dir_name + str(k) # 如果 to_path 目錄不存在,則創(chuàng)建 if not os.path.isdir(to_path): os.makedirs(to_path) copy(from_path, to_path) i += 1
3 相關(guān)說明
shutil 的 copy() 是復(fù)制到一個新的地方,創(chuàng)建時間、修改時間、訪問時間都是新的,copy2() 則是會創(chuàng)建時間、修改時間、訪問時間這些也復(fù)制過去。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。