1. 程式人生 > >python學習之路-第三天-一個簡單的腳本

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

tro 說明 .py else zipfile rect dylib 環境 cef

現在有一個需求:把某個目錄下的文件備份到指定到另外一個目錄下,而且壓縮後文件為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方法就不推薦使用

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