1. 程式人生 > >python基礎學習shutil高級的文件,目錄,壓縮包處理模塊

python基礎學習shutil高級的文件,目錄,壓縮包處理模塊

port home zipfile 移動文件 需要 記錄日誌 shutil nbsp ase

shutil高級的文件,目錄,壓縮包處理模塊
import shutil

復制
shutil.copyfileobj(f1,f2) #從一個文件對接復制到另一個文件對象,需要先打開文件
shutil.copyfile() #拷貝文件
shutil.copystat() #只拷貝文件狀態信息 包括 modebits,atime,mtime,flags
shutil.copymode() #值拷貝權限。內容和組,用戶均不改變
shutil.copy() #拷貝文件和權限
shutil.copy2() #同時拷貝文件和狀態信息
shutil.copytree() #遞歸拷貝文件或目錄
shutil.rmtree() #遞歸刪除文件或目錄
shutil.move() #移動文件


壓縮包

shutil.make_archive(base_name,format,..) 創建壓縮包並返回文件路徑
base_name 壓縮包的文件名
format:壓縮包的種類 ("zip","tar","gztar","bztar")
root_dir:壓縮的文件路徑
owner:用戶,默認當前用戶
group:組,默認當前組
logger:用於記錄日誌,通常是logging.logger對象
例:shutil.make_archive("www","gztar",root_dir="/home/www")

shutil對壓縮包的處理是調用了zipfile和tarfile 兩個模塊來進行處理
使用這兩個模塊進行解壓縮
import zipfile
z = zipfile.zipfile(‘www/zip‘,‘r‘)
z.extractall()
z.close

import tarfile
tar = tarfile.open(‘www.tar‘,‘r‘)
tar.extractall()
tar.close

import gzip
import os
def un_gz(file_name):
    """ungz zip file"""
    f_name = file_name.replace(".gz", "")
    #獲取文件的名稱,去掉
    g_file = gzip.GzipFile(file_name)
    #創建gzip對象
    open(f_name, "w+").write(g_file.read())
    #gzip對象用read()打開後,寫入open()建立的文件裏。
    g_file.close()
    #關閉gzip對象

python基礎學習shutil高級的文件,目錄,壓縮包處理模塊