Python小指令碼 001 備份檔案

2021-06-29 16:22:26 字數 2342 閱讀 7690

練習適用於linux,類unix系統,一步乙個腳印提高python 。

001.

類unix系統中用zip命令將檔案壓縮備份至 /temporary/ 目錄下:

import

osimport

time

old_files = ['

/home/zhg/aa.py

','home/zhg/bb.py']

target_dir = '

/temporary/

'target = target_dir + time.strftime('

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

') + '

.zip

'zip_command = "

zip -qr %s %s

" % (target,'

'.join(old_files))

if os.system(zip_command) ==0:

print

"successful backup to

",target_dir

else

:

print

"error backup failed

"

#

linux中上一次命令執行成功會返回0

#' '.join(sequence)方法見: 字串方法

公升級一下:

如果要在 /temporary/ 目錄下自動以當天日期的名稱生成乙個資料夾(if判斷不存在資料夾則執行 mkdir 命令),備份的zip檔案以當時的時間命名怎麼辦?並且要在檔名後面加一段注釋,例如:  /temporary/20150330/123030_add_new_file.zip

import

osimport

time

source_files = ['

/home/zhg/temptest/aa.py

','/home/zhg/temptest/bb.py']

target_dir = '

/temporary/

'today = target_dir + time.strftime('

%y%m%d')

now = time.strftime('

%h%m%s')

ifnot

os.path.exists(today):

os.mkdir(today)

print('s

uccessfully created new directory

'),today

comment = raw_input('

enter a file comment: ')

if len(comment) ==0:

target = today + '

/' + now + '

.zip

'else

: target = today + '

/' + now + '

_' + comment.replace('

','_

')+'

.zip

'zip_command = "

zip -qr %s %s

" % (target,'

'.join(source_files))

if os.system(zip_command) ==0:

print('

successfully created zip file

',target)

else

:

print('s

omthing failed

')

執行結果:

zhg@hang:~/

testdir$ python backup.py

successfully created new directory /temporary/20150330enter a file comment: add new file

('successfully created zip file', '/temporary/20150330/135040_add_new_file.zip'

)zhg@hang:

~/testdir$ ls /temporary/20150330/135040_add_new_file.zip

# 

comment.replace(' ','_') 把 add new file 的

空格換成了下劃線

# 關於zip的命令可自行搜尋,當然你也可以用tar命令

python小指令碼

匹配文件內容的關鍵字,並取得該關鍵字所在行所有內容 find the row where need keyword def getcontent tfile,sstr global keyword f1 open tfile readlines for i,j in enumerate f1 if ...

gitlab備份檢查小指令碼

直接上指令碼 bin sh source etc profile 定義郵件傳送列表 maillist zisefeizhu qq.com 清理快取 clean cache 傳送郵件函式 send mail do echo e date y m d backups success,nbackups b...

《mysql資料庫備份小指令碼》

vim mysql.sh bin bash day date y m d 日期以年月日顯示並賦予day變數 size du sh var lib mysql 檢視mysql的大小並且賦予變數size echo date day tmp mysqlbak.txt 輸出日期到mysqlbak.txt檔案...