情景:在使用python複製檔案或者解壓zip檔案時,檔案的修改時間總是被搞成了當前的執行時間,這樣有時會讓人挺蛋疼的。
import zipfile
# 發布函式
defdeploy()
:# 發布單號
order_code = sys.argv[1]
# 解壓到當前目錄,要包含根目錄
deploy_file_zip = os.path.join(source_path, order_code+
".zip"
) f = zipfile.zipfile(deploy_file_zip,
'r')
#for file in f.namelist():
# f.extract(file,source_path)
# 獲取解壓後根目錄)[
0][:
-1]# 保留原修改時間
forfile
in f.infolist():
# 先獲取原檔案的時間
d =file
.date_time
gettime =
"%s/%s/%s %s:%s"
%(d[0]
, d[1]
, d[2]
, d[3]
, d[4]
)# 先解壓檔案
f.extract(
file
, source_path)
# 獲取解壓後檔案的絕對路徑
filep = os.path.join(source_path,
file
.filename)
timearry = time.mktime(time.strptime(gettime,
'%y/%m/%d %h:%m'))
# 設定解壓後的修改時間(這裡把修改時間與訪問時間設為一樣了,windows系統)
os.utime(filep,
(timearry, timearry)).
....
....
.
import os
import shutil
from stat import st_atime, st_ctime, st_mtime
# 合包kcbp_risk
defmerge_krisk
(souce, dst):.
....
for root, dirs, files in os.walk(update_version_root_krisk)
:for f in files:
# 原檔案
update_file = os.path.join(root, f)
# 複製檔案,如果存在就會覆蓋,dst_file為複製後檔案
shutil.copy(update_file, dst_file)
# 關鍵步驟:保留修改時間,st_mtime:修改時間,st_ctime:檔案訪問時間,windows下
file_stat = os.stat(update_file)
os.utime(dst_file,
(file_stat[st_ctime]
, file_stat[st_mtime]
))
python 解壓zip檔案
import os import zipfile import time defunzipfile file dir,file name,filelist param file dir 絕對路徑 param file name 解壓檔名 param filelist 返回解壓後的所有檔名 retur...
python解壓zip指令碼
自己並不會python,但是 網上下了乙個 new 遊戲合集,需要批量解壓zip檔案,並提取nes檔案出來。然後磕磕碰碰的按照api寫的指令碼.僅供個人使用。coding utf 8 import zipfile import os import shutil files os.listdir tm...
Python壓縮解壓zip檔案
import os import shutil import zipfile from os.path import join,getsize一 python壓縮指定資料夾def zip file src dir zip name src dir zip z zipfile.zipfile zip ...