shutil模組是高階的 檔案、資料夾、壓縮包 處理模組
shutil.copyfileobj(fsrc, fdst[, length]) #將檔案內容拷貝到另乙個檔案中
shutil.copyfile(src, dst)
#拷貝檔案
shutil.copymode(src, dst)
#僅拷貝許可權。內容、組、使用者均不變
shutil.copystat(src, dst)
#僅拷貝狀態的資訊,包括:mode bits, atime, mtime, flags
shutil.copy(src, dst)
#拷貝檔案和許可權
shutil.copy2(src, dst)
#拷貝檔案和狀態資訊
shutil.ignore_patterns(*patterns)
shutil.copytree(src, dst, symlinks=false, ignore=none) #
遞迴的去拷貝資料夾
shutil.rmtree(path[, ignore_errors[, onerror]])
#遞迴的去刪除檔案
shutil.move(src, dst)
#遞迴的去移動檔案,它類似mv命令,其實就是重新命名。
shutil.make_archive(base_name, format,...): 建立壓縮包並返回檔案路徑,例如:zip、tar
-base_name: 壓縮包的檔名,也可以是壓縮包的路徑。只是檔名時,則儲存至當前目 錄,否則儲存至指定路徑,
如 data_bak =>儲存至當前路徑
如:/tmp/data_bak =>儲存至/tmp/
-format: 壓縮包種類,「zip」, 「tar」, 「bztar」,「gztar」
-root_dir: 要壓縮的資料夾路徑(預設當前目錄)
-owner: 使用者,預設當前使用者
-group: 組,預設當前組
- logger: 用於記錄日誌,通常是logging.logger物件
importshutil
shutil.copyfileobj(open(
'old.xml
','r
'), open('
new.xml
', 'w'
))shutil.copyfile(
'f1.log
', '
f2.log
') #
目標檔案無需存在
shutil.copymode(
'f1.log
', '
f2.log
') #
目標檔案必須存在
shutil.copystat(
'f1.log
', '
f2.log
') #
目標檔案必須存在
shutil.copy(
'f1.log
', '
f2.log')
shutil.copy2(
'f1.log
', '
f2.log')
shutil.copytree(
'folder1
', '
folder2
', ignore=shutil.ignore_patterns('
*.pyc
', '
tmp*
')) #
目標目錄不能存在,注意對folder2目錄父級目錄要有可寫許可權,ignore的意思是排除
shutil.rmtree(
'folder1')
shutil.move(
'folder1
', '
folder3')
ret = shutil.make_archive("
data_bak
", '
gztar
', root_dir='
/data
') #
將 /data 下的檔案打包放置當前程式目錄
ret = shutil.make_archive("
/tmp/data_bak
", '
gztar
', root_dir='
/data
') #
將 /data下的檔案打包放置 /tmp/目錄
shutil 對壓縮包的處理是呼叫 zipfile 和 tarfile 兩個模組來進行的
importzipfile#壓縮
z = zipfile.zipfile('
laxi.zip
', 'w'
)z.write(
'a.log')
z.write(
'data.data')
z.close()#解壓
z = zipfile.zipfile('
laxi.zip
', 'r'
)z.extractall(path='.'
)z.close()
importtarfile#壓縮
>>> t=tarfile.open('
/tmp/egon.tar
','w')
>>> t.add('
/test1/a.py
',arcname='
a.bak')
>>> t.add('
/test1/b.py
',arcname='
b.bak')
>>>t.close()#解壓
>>> t=tarfile.open('
/tmp/egon.tar
','r')
>>> t.extractall('
/egon')
>>> t.close()
python模組之shutil模組
高階的 檔案 資料夾 壓縮包 處理模組 shutil.copyfileobj fsrc,fdst length 將檔案內容拷貝到另乙個檔案中 import shutil shutil.copyfileobj open old.xml r open new.xml w shutil.copyfile ...
shutil 模組 os模組
shutil.copyfile src,dst 從源src複製到dst中去。如果當前的dst已存在的話就會被覆蓋掉 shutil.move src,dst 移動檔案或重新命名 shutil.copymode src,dst 只是會複製其許可權其他的東西是不會被複製的 shutil.copystat ...
logging模組,shutil模組
用於便捷記錄日誌且執行緒安全的模組 1 單檔案日誌 import logging logging.basicconfig filename 檔名.log format asctime s name s levelname s module s message s datefmt y m d h m ...