Python中shutil模塊的使用詳解
簡介:shutil 模塊提供了一系列對文件和文件集合的高階操作。特別是提供了一些支持文件拷貝和刪除的函數(shù),該模塊主要強大之處在于其對文件的復(fù)制與刪除操作更是比較支持好。
主要方法:
1、復(fù)制文件
2、復(fù)制文件夾
3、文件、文件夾移動
4、文件、文件夾改名
5、永久刪除文件和文件夾
6、文件、文件夾進(jìn)行打包
復(fù)制文件、并進(jìn)行文件改名:
import shutil # 復(fù)制文件、并進(jìn)行文件改名 copy src_copy = r"D:\codes\ai2022\test1\a1.txt" dst_copy = r"D:\codes\ai2022\test2\a2.txt" shutil.copy(src_copy, dst_copy)
復(fù)制文件夾:
# 復(fù)制文件夾 copytree src_copytree = r"D:\codes\ai2022\test1" dst_copytree = r"D:\codes\ai2022\test3" shutil.copytree(src_copytree, dst_copytree)
文件移動:如果目標(biāo)目錄存在同名文件,則報錯:already exists
# 文件移動 move src_move = r"D:\codes\ai2022\test2" dst_move = r"D:\codes\ai2022\test3" shutil.move(src_move, dst_move)
文件夾移動:
# 文件夾移動 move src_move_dir = r"D:\codes\ai2022\test2" dst_move_dir= r"D:\codes\ai2022\test3" shutil.move(src_move_dir, dst_move_dir)
永久刪除文件和文件夾:
利用 os 模塊中的函數(shù),可以刪除一個文件或一個空文件夾。但利用 shutil 模塊,可以刪除一個文件夾及其所有的內(nèi)容。
# 刪除文件夾包含的所有文件和文件夾都會被刪除。 dst_remove_dir= r"D:\codes\ai2022\test3" shutil.rmtree(dst_remove_dir)
文件、文件夾進(jìn)行打包:
# 文件、文件夾打包:shutil.make_archive # 最終壓縮包的文件路徑地址、壓縮包文件名。只傳文件名則默認(rèn)當(dāng)前路徑 zip_path = r"D:\codes\ai2022\test5\test_zip" # 需要進(jìn)行壓縮的文件路徑 root_dir = r"D:\codes\ai2022\test4" # 壓縮包的類型可以是"zip", "tar", "gztar", "bztar", or "xztar" result = shutil.make_archive(zip_path, 'zip', root_dir=root_dir) print(f"root_dir:{root_dir}")
創(chuàng)建打包參數(shù)詳解:
base_name:壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時,則保存至當(dāng)前目錄,否則保存至指定路徑, format:壓縮包種類,“zip”, “tar”, “bztar”,“gztar” root_dir:要壓縮的文件夾路徑(默認(rèn)當(dāng)前目錄) owner:用戶,默認(rèn)當(dāng)前用戶 group:組,默認(rèn)當(dāng)前組 logger:用于記錄日志,通常是logging.Logger對象
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python3中使用urllib的方法詳解(header,代理,超時,認(rèn)證,異常處理)
這篇文章整理了一些關(guān)于urllib使用中的一些關(guān)于header,代理,超時,認(rèn)證,異常處理處理方法,對大家學(xué)習(xí)python具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。2016-09-09Python連接PostgreSQL數(shù)據(jù)庫的方法
大家應(yīng)該都有所了解,python可以操作多種數(shù)據(jù)庫,諸如SQLite、MySql、PostgreSQL等,這里不對所有的數(shù)據(jù)庫操作方法進(jìn)行贅述,只針對目前項目中用到的PostgreSQL做一下簡單介紹,主要是Python連接PostgreSQL數(shù)據(jù)庫的方法。有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-11-11Boston數(shù)據(jù)集預(yù)測放假及應(yīng)用優(yōu)缺點評估
這篇文章主要為大家介紹了Boston數(shù)據(jù)集預(yù)測放假及應(yīng)用優(yōu)缺點評估,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Python操作SQLite數(shù)據(jù)庫的方法詳解
這篇文章主要介紹了Python操作SQLite數(shù)據(jù)庫的方法,較為詳細(xì)的分析了Python安裝sqlite數(shù)據(jù)庫模塊及針對sqlite數(shù)據(jù)庫的常用操作技巧,需要的朋友可以參考下2017-06-06一小時學(xué)會TensorFlow2之基本操作2實例代碼
這篇文章主要介紹了TensorFlow2的基本操作和實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09python算法與數(shù)據(jù)結(jié)構(gòu)朋友圈與水杯實驗題分析實例
這篇文章主要介紹了python算法與數(shù)據(jù)結(jié)構(gòu)朋友圈與水杯實驗題分析,總的來說這并不是難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2022-12-12Django使用paginator插件實現(xiàn)翻頁功能的實例
今天小編就為大家分享一篇關(guān)于Django使用paginator插件實現(xiàn)翻頁功能的實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10