python學習之路-第六天-一個簡單的腳本


現在有一個需求:把某個目錄下的文件備份到指定到另外一個目錄下,而且壓縮后文件為zip文件

# -*- coding:utf-8 -*-
#! /usr/bin/python
# Filename:backup_v1.py

import os
import time

source = [r'H:\StudyLib\lib']
# 源文件目錄,是個列表,可以放入多個目錄
target_dir = 'I:\\backpacks\\'
# 目標目錄
target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 目標zip文件
zip_commend = "zip -qr %s %s" % (target, ' '.join(source))
# zip命令字符串
print zip_commend
#輸出命令行測試
if os.system(zip_commend) == 0:
# 執行zip命令,若返回0,則說明正確備份
	print 'Successful backup to ' ,target
else:
	print 'backup failed'

上面的注釋寫的挺詳細的了,我們需要注意的由兩點:

一個是windows不會自帶zip壓縮程序,需要我們自己下載,並把環境變量配置正確,

下載地址

另一個如果沒有在頭部聲明編碼的話會出現中文編碼的問題,一定要寫在第一行

這個版本其實只是把源文件和目標文件規定了一下,並沒有任何優化操作

第一個優化:

可以在我們的目標目錄中建立一級和二級目錄,一級目錄名稱就為年月日,這樣在每次做備份的時候,可以確保一天只建立一個文件夾(如果存在就不用創建新的文件夾了)

# -*- coding:utf-8 -*-
#! /usr/bin/python
# Filename:backup_v1.py


import os
import time

source = [r'H:\StudyLib\lib']
# 源文件目錄,是個列表,可以放入多個目錄
target_dir = 'I:\\backpacks\\'
# 目標目錄
today = target_dir + time.strftime('%Y%m%d')
# 目標文件夾的一級目錄
now = time.strftime('%H%M%S')
# 目標文件夾的二級目錄
if not os.path.exists(today):
	os.mkdir(today)
	print 'Successful create directory',today
# 如果目錄不存在則創建
target = today + os.sep + now + '.zip'
# 目標文件
zip_commend = "zip -qr %s %s" % (target, ' '.join(source))
# zip命令字符串
print "執行命令:" +zip_commend
#輸出命令行測試
if os.system(zip_commend) == 0:                               
# 執行zip命令,若返回0,則說明正確備份
	print 'Successful backup to ' ,target
else:
	print 'backup failed'

最理想的創建這些歸檔的方法是分別使用zipfile和tarfile,因為是python標准庫里面的方法,這次的學習里面的os.system方法就不推薦使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM