shutil模組提供了大量的檔案的高階操作。特別針對檔案拷貝和刪除,主要功能為目錄和檔案操作以及壓縮操作。對單個檔案的操作也可參見os模組。
shutil.copyfile(src, dst):複製檔案內容(不包含元資料)從src到dst。 dst必須是完整的目標檔名;拷貝目錄參見shutil.copy()。如果src和dst是同一檔案,就會引發錯誤shutil.error。dst必須是可寫的,否則將引發異常ioerror。如果dst已經存在,它會被替換。特殊檔案,例如字元或塊裝置和管道不能使用此功能,因為copyfile會開啟並閱讀檔案。 src和dst的是字串形式的路徑名。
shutil.copyfile("shutil_copyfile.py
","shutil_copyfile.py.copy
")
copyfile()呼叫了底函式層copyfileobj()。
shutil.copyfileobj(fsrc, fdst[, length]):複製檔案內容(不包含元資料)從類檔案物件src到類檔案對dst。可選引數length指定緩衝區的大小,負數表示一次性讀入。缺省會把資料切分成小塊拷貝,以免占用太多記憶體。注意:拷貝是從fsrc的當前檔案開始。
copyfileobj(fsrc, fdst, length=16*1024)
shutil.copy(src, dst):複製檔案src到檔案或目錄dst。如果dst是目錄,使用src相同的檔名建立(或覆蓋),許可權位也會複製。src和dst的是字串形式的路徑名。
1defcopy(src, dst):
2"""
copy data and mode bits ("cp src dst").34
the destination may be a directory.56
"""7
ifos.path.isdir(dst):
8 dst =os.path.join(dst, os.path.basename(src))
9copyfile(src, dst)
10 copymode(src, dst)
shutil.copy2(src, dst): 類似shutil.copy,元資料也複製,實際上先呼叫shutil.copy,然後使用copystat。這類似於unix命令cp -p。
defcopy2(src, dst):
"""copy data and all stat info ("cp -p src dst").
the destination may be a directory.
"""if
os.path.isdir(dst):
dst =os.path.join(dst, os.path.basename(src))
copyfile(src, dst)
copystat(src, dst)
當由unix下建立檔案預設基於umask設定許可權,copymode()可以複製許可權。
shutil.copymode(src, dst):從src複製許可權位到dst。該檔案的內容,所有者和組不受影響。src和dst的是字串形式的路徑名。
copymode('shutil_copymode.py
', '
file_to_change.txt
')
要想拷貝檔案時間戳,需要copystat。
shutil.copystat(src, dst): 從src複製許可權位,最後訪問時間,最後修改時間,flag到dst。該檔案的內容,所有者和組不受影響。 src和dst的是給定的字串路徑名。
opystat('shutil_copystat.py
', '
file_to_change.txt
')
2.7以後的版本提供了壓縮和解壓功能。
格式:shutil.make_archive(base_name, format[, root_dir[, base_dir, verbose, dry_run, owner, group, logger])
base_name: 壓縮包的檔名,也可以是壓縮包的路徑。只是檔名時,則儲存至當前目錄,否則儲存至指定路徑,
format: 壓縮包種類,「zip」, 「tar」, 「bztar」,「gztar」
root_dir: 要壓縮的資料夾路徑(預設當前目錄)
owner: 使用者,預設當前使用者
group: 組,預設當前組
logger: 用於記錄日誌,通常是logging.logger物件
ret = shutil.make_archive("backup
","tar
",root_dir="
/home/www/
") #將/home/www目錄下的檔案進行備份,生成backup.tar的檔案,其中tar為壓縮包的字尾,www為壓縮包檔名
指定目錄備份:
>>> shutil.make_archive("/tmp/backup","tar",root_dir="/usr/local/python35")
'/tmp/backup.tar'
參考文件:
python shutil 高階檔案操作
shutil模組提供了大量的檔案的高階操作。特別針對檔案拷貝和刪除,主要功能為目錄和檔案操作以及壓縮操作。對單個檔案的操作也可參見os模組。shutil.copyfile src,dst 複製檔案內容 不包含元資料 從src到dst。dst必須是完整的目標檔名 拷貝目錄參見shutil.copy 如...
Python shutil模組用法
1.shutil.copyfile oldfile,newfile 複製檔案1到檔案2中,如txt檔案。注意 若檔案2不存在,則直接建立檔案2,且檔案2中內容和檔案1內容相同。若檔案2存在,則檔案2中原有內容會被清除掉。語法 shutil.copyfile oldfile,newfile impor...
shutil模組 python shutil模組
shutil.copyfile src,dst 從源src複製到dst中去。當然前提是目標位址是具備可寫許可權。丟擲的異常資訊為ioexception.如果當前的dst已存在的話就會被覆蓋掉 shutil.move src,dst 移動檔案或重新命名 shutil.copymode src,dst ...