python 簡單備份檔案指令碼v2 0

2022-09-11 20:24:15 字數 3412 閱讀 2849

1.0中使用os.system來壓縮會依賴計算機之外的程式,使用zipfile內建模組來建立壓縮文件會是乙個很好的改進,此外使用日期時間來命名壓縮檔案不是很全面,希望可以增加使用者輸入檔名以及增強檔案歸檔功能。

將指定檔案新增到zip文件中。filename為檔案路徑,arcname為新增到zip文件之後儲存的名稱, 引數compress_type表示壓縮方法,它的值可以是zipfile.

zip_stored 或zipfile.

zip_deflated。

>>> import

zipfile

>>> z=zipfile.zipfile(r'

d:\backup\te.zip

','w')

>>> z.write(r'

d:qqpcmgr')

>>> z.close()

迭代這個目錄下的所有檔案

os.walk() 方法用於通過在目錄樹種遊走輸出在目錄中的檔名,向上或者向下。

walk()方法語法格式如下:

os.walk(top[,topdown=true[,onerror=none[,followlinks=false]]])

該方法沒有返回值。

a資料夾中:

#建立了上圖的檔案目錄,檢視os.walk的執行效果

#  資料夾路徑, 資料夾名字, 檔名

>>> for root,dirs,files in os.walk('d:/test'):

print (root,dirs,files)

d:/test ['

a', '

b'] ['

1.txt

', '

2.txt']

d:/test\a ['

aa'] ['

1.txt']

d:/test\a\aa

d:/test\b

第三項,也就是檔名,有利於我們進行壓縮所有檔案操作

>>> z=zipfile.zipfile('

d:/tt.zip

','w')

>>> for root,dirs,files in os.walk('

d:/test

'): #獲取所有檔名

for file in

files:

z.write(os.path.join(root,file)) #os.path.join形成完整的檔案路徑名? 不是很明白 2017-11-05

>>> z.close()

本來擔心可能會把所有的檔案都放到zip檔案中而不會建立相應的資料夾,結果反應建立了a資料夾,但沒有建立b資料夾,因為b是乙個空資料夾(使用這種方式不會有空資料夾,該怎麼使他具有呢,以後學習多了來解決一下2017-11-05)

#

filename:backup.py

import

os,time,zipfile

#要備份的檔案的列表

source = ['

c:\\users\\hm\\desktop\\web\\ch2

','c:\\users\\hm\\desktop\\web\\ch3']

#構造好備份目標檔案

target_dir = '

d:\\backup

'target = target_dir + os.sep + time.strftime('

%y%m%d%h%m%s

')+'

.zip'#

使用zipfile來壓縮

#建立壓縮包變數z

z=zipfile.zipfile(target,'w'

)#遍歷所有的檔案

for back_dir in

source:

for root,filedirs,files in

os.walk(back_dir):

for file in

files:

z.write(os.path.join(root,file))

z.close()

print('

成功備份至

',target)

備份成功!

以日期作為資料夾,時間來作為預設的檔名,允許使用者自己輸入備註名

1.如果不存在今天的日期資料夾,那建立乙個

2.使用者自己輸入了名字,使用該名字命名(將空格替換為_以防止出現處理中的問題)

#

filename:backup.py

import

os,time,zipfile

#要備份的檔案的列表

source = ['

c:\\users\\hm\\desktop\\web\\ch2

','c:\\users\\hm\\desktop\\web\\ch3']

#構造好備份目標檔案

target_dir = '

d:\\backup'#

建立日期資料夾

today = target_dir + os.sep + time.strftime('

%y%m%d')

ifnot

os.path.exists(today):

os.mkdir(today)

#建立檔名

comment = input("

請輸入注釋:")

if len(comment) ==0:

target = today + os.sep + time.strftime('

%h%m%s

')+'

.zip

'else

: target = today + os.sep + time.strftime('

%h%m%s

') + comment.replace('

','_

') + '

.zip'#

使用zipfile來壓縮

#建立壓縮包變數z

z=zipfile.zipfile(target,'w'

)#遍歷所有的檔案

for back_dir in

source:

for root,filedirs,files in

os.walk(back_dir):

for file in

files:

z.write(os.path.join(root,file))

z.close()

print('

成功備份至

',target)

python 備份檔案指令碼

usr bin env python filename backup ver1.pyimport os import time source r d python test r d python test1 target dir d python test2 remember to change t...

Python小指令碼 001 備份檔案

練習適用於linux,類unix系統,一步乙個腳印提高python 001.類unix系統中用zip命令將檔案壓縮備份至 temporary 目錄下 import osimport time old files home zhg aa.py home zhg bb.py target dir tem...

linux指令碼實現備份檔案

要求 編寫乙個指令碼實現備份 var log目錄下的所有檔案到 bak目錄下,要求檔名是包含當天日期,精確到秒,檔名例如 2019 6 6 2 30 20 log.tar.gz。同時要求刪除 bak目錄下七天前的備份檔案,只保留最近7天的 bin bash 獲得當前的時間 ctime date y ...