溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中shutil模塊怎么用

發(fā)布時(shí)間:2021-10-18 15:20:59 來源:億速云 閱讀:164 作者:小新 欄目:編程語言

這篇文章主要介紹了Python中shutil模塊怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

對(duì)比os模塊的函數(shù)和shutil模塊中包含的函數(shù),會(huì)發(fā)現(xiàn)它們有一些重復(fù)。那么為什么會(huì)存在兩個(gè)模塊提供相同功能的情況呢?這就涉及到了標(biāo)準(zhǔn)庫模塊的定位問題了。os模塊是對(duì)操作系統(tǒng)的接口進(jìn)行封裝,主要作用是跨平臺(tái),shutil模塊包含復(fù)制、移動(dòng)、重命名、刪除文件目錄以及壓縮包的函數(shù),主要作用是管理文件和目錄,因此它們并不沖突,并且是互補(bǔ)的關(guān)系,對(duì)于常見的文件操作,shutil更易于使用。在shutil里面沒有提供相應(yīng)功能的情況下再使用os模塊下的函數(shù)。

1、復(fù)制文件

shutil.copy('src','dst')

2、復(fù)制目錄

shutil.copytree('src','dst')

3、移動(dòng)目錄或文件(重命名)

shutil.move('src','dst')

4、刪除目錄

shutil.rmtree('path')

5、更改屬主及屬組

shutil.chown('path','user','group')

6、查找命令絕對(duì)路徑

shutil.which('cmd')

7、獲取磁盤使用空間

total, used, free = shutil.disk_usage("path")
print("當(dāng)前磁盤共: %iGB, 已使用: %iGB, 剩余: %iGB"%(total / 1073741824, used / 1073741824, free / 1073741824))

注:默認(rèn)單位是字節(jié),所以轉(zhuǎn)換為了GB,公式如下:
1KB= 1024字節(jié),1MB= 1024KB,1GB= 1024MB; 所以:1G=1073741824字節(jié)。也就是上面為什么要除以1073741824

8、歸檔和解包

1)獲取當(dāng)前系統(tǒng)支持的解包文件格式(后綴)
shutil.get_unpack_formats()
2)獲取當(dāng)前系統(tǒng)支持的壓縮文件格式(后綴)
shutil.get_archive_formats()
3)歸檔壓縮
shutil.make_archive('test','gztar','./')    #將當(dāng)前目錄下所有文件打包為test.tar.gz

參數(shù)解釋如下(從左往右開始):

  • base_name: 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時(shí),則保存至當(dāng)前目錄,否則保存至指定路徑。 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/

  • gztar: 壓縮包種類,可選值有:“zip”, “tar”, “bztar”,“gztar”

  • ./: 要壓縮的文件夾路徑(默認(rèn)當(dāng)前目錄)

4)解檔壓縮
shutil.unpack_archive(filename,extract_dir=None,format=None)
# 栗子:
shutil.unpack_archive('test.tar.gz','/opt/tlv')
  • filename:文件路徑;

  • extract_dir:解壓至的文件夾路徑。文件夾可以不存在,會(huì)自動(dòng)生成;

  • format:解壓格式,默認(rèn)為None,會(huì)根據(jù)擴(kuò)展名自動(dòng)選擇解壓格式。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python中shutil模塊怎么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI