用Python批量把文件復(fù)制到另一個(gè)文件夾的實(shí)現(xiàn)方法
0 前言
大概是三個(gè)月前,有個(gè)人找我說(shuō)要我?guī)兔?xiě)幾行代碼,功能是把一個(gè)文件夾里面的所有文件拆分成 200 個(gè)文件一個(gè)文件夾,很簡(jiǎn)單的。
我理解了之后,覺(jué)得還是挺簡(jiǎn)單的,花了半個(gè)小時(shí)寫(xiě)出來(lái)了,代碼也不多,代碼和思路都可以分享一下。
1 環(huán)境說(shuō)明
Win10 系統(tǒng)下 Python3,編譯器是 Pycharm。
需要安裝 shutil 這個(gè)第三方庫(kù),直接 pip install shutil 就可以了。
2 代碼
先導(dǎo)入需要用到的庫(kù),os 是用來(lái)切換路徑和創(chuàng)建文件夾的。
shutil 是用來(lái)復(fù)制黏貼文件的
import os from shutil import copy
i 用來(lái)計(jì)算文件數(shù)量,當(dāng) i 是 200 的倍數(shù)時(shí),k 會(huì) +1;k 用來(lái)計(jì)算新建文件夾的數(shù)量,方便創(chuàng)建文件夾。
save_dir 是想把復(fù)制出來(lái)的文件存放在的路徑
# i 用來(lái)計(jì)算文件數(shù)量,k 用來(lái)計(jì)算新建文件夾的數(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 下的文件和文件夾列表 # 因?yàn)?file_path 里面沒(méi)有文件夾,所以不處理有文件夾的情況 pathDir = os.listdir(file_path)
獲取到了列表,那就一個(gè)一個(gè)進(jìn)行遍歷。0 是 200 的倍數(shù),所以一開(kāi)始 k 的值會(huì) +1 。
allDir 是文件的名字+后綴名。from_path 就是當(dāng)前這個(gè)被遍歷出來(lái)的文件的完整路徑,to_path是這個(gè)文件要復(fù)制到的路徑。
接著 copy(from_path, to_path) 完成復(fù)制黏貼,最后 i 自增1.
for allDir in pathDir: if( (i%200) == 0): print("200 的倍數(shù),新建一個(gè)文件夾") 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)說(shuō)明
shutil 的 copy() 是復(fù)制到一個(gè)新的地方,創(chuàng)建時(shí)間、修改時(shí)間、訪問(wèn)時(shí)間都是新的,copy2() 則是會(huì)創(chuàng)建時(shí)間、修改時(shí)間、訪問(wèn)時(shí)間這些也復(fù)制過(guò)去。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python playwright--pytest-playwright、pytest-base-url插件編
這篇文章主要介紹了python playwright--pytest-playwright、pytest-base-url插件編寫(xiě)用例,它提供上下文隔離,開(kāi)箱即用地在多個(gè)瀏覽器配置上運(yùn)行,它繼承了pytest框架,以及支持playwright的一些基礎(chǔ)使用,需要的朋友可以參考下2023-05-05Python實(shí)現(xiàn)手機(jī)號(hào)自動(dòng)判斷男女性別(實(shí)例解析)
這篇文章主要介紹了Python實(shí)現(xiàn)手機(jī)號(hào)自動(dòng)判斷男女性別,本文性別判斷主要依靠airtest中的自動(dòng)化測(cè)試實(shí)現(xiàn),通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12pytest通過(guò)assert進(jìn)行斷言的實(shí)現(xiàn)
assert斷言是一種用于檢查代碼是否按預(yù)期工作的方法,在pytest中,assert斷言可以用于測(cè)試代碼的正確性,以確保代碼在運(yùn)行時(shí)按照預(yù)期工作,本文就來(lái)介紹一下如何使用,感興趣的可以了解下2023-12-12python的django寫(xiě)頁(yè)面上傳文件及遇到的問(wèn)題小結(jié)
這篇文章主要介紹了python的django寫(xiě)頁(yè)面上傳文件以及遇到的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08Python??處理?Pandas?DataFrame?中的行和列
這篇文章主要介紹了Python處理Pandas?DataFrame中的行和列,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09Python中排序函數(shù)sorted()函數(shù)的使用實(shí)例
sorted()作為Python內(nèi)置函數(shù)之一,其功能是對(duì)序列(列表、元組、字典、集合、還包括字符串)進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于Python中排序函數(shù)sorted()函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-11-11Python在信息學(xué)競(jìng)賽中的運(yùn)用及Python的基本用法(詳解)
下面小編就為大家?guī)?lái)一篇Python在信息學(xué)競(jìng)賽中的運(yùn)用及Python的基本用法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08