1. 程式人生 > 程式設計 >簡單瞭解python shutil模組原理及使用方法

簡單瞭解python shutil模組原理及使用方法

shutil

--High-level file operations 高階的檔案操作模組

os模組提供了對目錄或者檔案的新建/刪除/檢視檔案屬性,還提供了對檔案以及目錄的路徑操作。比如說:絕對路徑,父目錄…… 但是,os檔案的操作還應該包含移動 複製 打包 壓縮 解壓等操作,這些os模組都沒有提供。

而本章所講的shutil則就是對os中檔案操作的補充。--移動 複製 打包 壓縮 解壓

shutil 功能:

1 shutil.copyfileobj(fsrc,fds+[,length=16*1024]) #copy檔案內容到另一個檔案,可以copy指定大小的內容

import shutil
f1=open('1.txt','r')

f2=open('1_copy.txt','w+')
shutil.copyfileobj(f1,f2,length=16*1024)

2 shutil.copyfile(src,dst) #copy檔案內容,是不是感覺上面的檔案複製很麻煩?還需要自己手動用open函式開啟檔案,在這裡就不需要了,事實上,copyfile呼叫了copyfileobj

import shutil
shutil.copyfile('1.txt','1_copy_file.txt')

3 shutil.copymode(src,dst) #僅copy許可權,不更改檔案內容,組和使用者。

準備2個檔案

-rwxr-xr-x 1 python python 66 4月 24 11:50 1.txt #許可權是755

-rwx-w--w- 1 python python 0 4月 24 11:50 2.txt #許可權是722

import shutil
shutil.copymode('1.txt','2.txt')

執行結果後:

-rwxr-xr-x 1 python python 66 4月 24 11:50 1.txt #許可權是755
-rwxr-xr-x 1 python python 0 4月 24 11:50 2.txt #許可權是755

注意:是根據第一個檔案的許可權來同步第二個檔案許可權,並且不支援三個引數,例如:shutil.copymode('1.txt','2.txt','3.txt')

4 shutil.copystat(src,dst) #複製所有的狀態資訊,包括許可權,組,使用者,時間等

文以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。