python學習之路-第三天-一個簡單的腳本
阿新 • • 發佈:2017-11-27
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學習之路-第三天-一個簡單的腳本