python初級之路-shutil模組
阿新 • • 發佈:2020-09-23
python之shutil模組:
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 4 import shutil 5 6 shutil.copy('f1.log', 'f2.log') # shutil.copy(src, dst) 方法拷貝檔案和許可權 7 8 shutil.copy2('f1.log', 'f2.log') # shutil.copy2(src, dst) 方法拷貝檔案和狀態資訊 9 10 shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w')) # shutil.copyfileobj(fsrc, fdst[, length]) 方法將檔案內容拷貝到另一個檔案中 11 12 shutil.copyfile('f1.log', 'f2.log') # shutil.copyfile(src, dst) 方法將檔案拷貝成新的檔案 13 14 shutil.copymode('f1.log', 'f2.log') # shutil.copymode(src, dst) 方法只拷貝檔案許可權(目標檔案必須存在),內容、屬組、使用者均不變 15 16 shutil.copystat('f1.log', 'f2.log') # shutil.copystat(src, dst) 方法僅拷貝狀態的資訊(目標檔案必須存在),包括:mode bits, atime, mtime, flags 17 18 shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) # shutil.copytree(src, dst, symlinks=False, ignore=None) 方法遞迴的去拷貝資料夾,目標目錄不能存在,注意對folder2目錄父級目錄要有可寫許可權,ignore的意思是排除19 20 shutil.rmtree('folder1') # shutil.rmtree(path[, ignore_errors[, onerror]]) 方法遞迴的去刪除檔案 21 22 shutil.move('folder1', 'folder3') # shutil.move(src, dst) 方法移動檔案,它類似mv命令,其實就是重新命名。 23 24 25 """ 26 shutil.make_archive(base_name, format,...) 27 28 建立壓縮包並返回檔案路徑,例如:zip、tar 29 30 建立壓縮包並返回檔案路徑,例如:zip、tar 31 32 base_name: 壓縮包的檔名,也可以是壓縮包的路徑。只是檔名時,則儲存至當前目錄,否則儲存至指定路徑, 33 如 data_bak =>儲存至當前路徑 34 如:/tmp/data_bak =>儲存至/tmp/ 35 format: 壓縮包種類,“zip”, “tar”, “bztar”,“gztar” 36 root_dir: 要壓縮的資料夾路徑(預設當前目錄) 37 owner: 使用者,預設當前使用者 38 group: 組,預設當前組 39 logger: 用於記錄日誌,通常是logging.Logger物件 40 """ 41 shutil.make_archive("data_bak", 'gztar', root_dir='/data') # 將 /data 下的檔案打包放置當前程式目錄 42 shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data') # 將 /data下的檔案打包放置 /tmp/目錄