在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 備份腳本——版本一
備份腳本——版本四
使用 <strong>init</strong> 方法
控制流
異常
表 15.1 一些特殊的方法
如何創(chuàng)建你自己的模塊
使用字典
前言
使用默認(rèn)參數(shù)值
表 5.1 運(yùn)算符與它們的用法
解決問題——編寫一個 Python 腳本
使用 for 語句
使用 continue 語句
使用元組輸出
對象與參考
使用函數(shù)形參
使用默認(rèn)參數(shù)值
使用 if 語句
如何引發(fā)異常
使用源文件
使用對象的方法
使用表達(dá)式
定義函數(shù)
使用局部變量
使用列表綜合
使用 sys.argv
使用 lambda 形式
使用 global 語句
備份腳本——版本二
使用列表
使用 while 語句
備份腳本——版本一
使用元組
輸入/輸出
使用類與對象的變量
使用 sys 模塊
表 5.2 運(yùn)算符優(yōu)先級
處理異常
使用 break 語句
函數(shù)
基本概念
運(yùn)算符與表達(dá)式
介紹
使用文件
使用序列
接下來學(xué)習(xí)什么?
使用帶提示符的 Python 解釋器
使用 DocStrings
使用字面意義上的語句
最初的步驟
數(shù)據(jù)結(jié)構(gòu)
儲存與取儲存
使用 dir 函數(shù)
模塊
Python 標(biāo)準(zhǔn)庫
備份腳本——版本三(不工作!)
創(chuàng)建一個類
安裝 Python
面向?qū)ο蟮木幊?/span>
使用模塊的<strong>name</strong>
使用變量和字面意義上的常量
使用繼承

備份腳本——版本一


    #!/usr/bin/python
    # Filename: backup_ver1.py

    import os
    import time

    # 1. The files and directories to be backed up are specified in a list.
    source = ['/home/swaroop/byte', '/home/swaroop/bin']
    # If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that

    # 2. The backup must be stored in a main backup directory
    target_dir = '/mnt/e/backup/' # Remember to change this to what you will be using

    # 3. The files are backed up into a zip file.
    # 4. The name of the zip archive is the current date and time
    target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'

    # 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
    zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))

    # Run the backup
    if os.system(zip_command) == 0:
        print 'Successful backup to', target
    else:
        print 'Backup FAILED'

(源文件:code/backup_ver1.py

輸出


    $ python backup_ver1.py
    Successful backup to /mnt/e/backup/20041208073244.zip

現(xiàn)在,我們已經(jīng)處于測試環(huán)節(jié)了,在這個環(huán)節(jié),我們測試我們的程序是否正確工作。如果它與我們所期望的不一樣,我們就得調(diào)試我們的程序,即消除程序中的 瑕疵 (錯誤)。

它如何工作

接下來你將看到我們?nèi)绾伟?設(shè)計 一步一步地轉(zhuǎn)換為 代碼 。

我們使用了 os 和 time 模塊,所以我們輸入它們。然后,我們在 source 列表中指定需要備份的文件和目錄。目標(biāo)目錄是我們想要存儲備份文件的地方,它由 target_dir 變量指定。zip 歸檔的名稱是目前的日期和時間,我們使用 time.strftime()函數(shù)獲得。它還包括.zip 擴(kuò)展名,將被保存在 target_dir 目錄中。

time.strftime()函數(shù)需要我們在上面的程序中使用的那種定制。%Y 會被無世紀(jì)的年份所替代。%m 會被 01 到 12 之間的一個十進(jìn)制月份數(shù)替代,其他依次類推。這些定制的詳細(xì)情況可以在《Python 參考手冊》中獲得?!禤ython 參考手冊》包含在你的 Python 發(fā)行版中。注意這些定制與用于 print 語句的定制(%后跟一個元組)類似(但不完全相同)

我們使用加法操作符來 級連 字符串,即把兩個字符串連接在一起返回一個新的字符串。通過這種方式,我們創(chuàng)建了目標(biāo) zip 文件的名稱。接著我們創(chuàng)建了 zip_command 字符串,它包含我們將要執(zhí)行的命令。你可以在 shell(Linux 終端或者 DOS 提示符)中運(yùn)行它,以檢驗(yàn)它是否工作。

zip 命令有一些選項(xiàng)和參數(shù)。-q 選項(xiàng)用來表示 zip 命令安靜地工作。-r 選項(xiàng)表示 zip 命令對目錄遞歸地工作,即它包括子目錄以及子目錄中的文件。兩個選項(xiàng)可以組合成縮寫形式-qr。選項(xiàng)后面跟著待創(chuàng)建的 zip 歸檔的名稱,然后再是待備份的文件和目錄列表。我們使用已經(jīng)學(xué)習(xí)過的字符串 join 方法把 source 列表轉(zhuǎn)換為字符串。

最后,我們使用 os.system 函數(shù) 運(yùn)行 命令,利用這個函數(shù)就好像在 系統(tǒng) 中運(yùn)行命令一樣。即在 shell 中運(yùn)行命令——如果命令成功運(yùn)行,它返回 0,否則它返回錯誤號。

根據(jù)命令的輸出,我們打印對應(yīng)的消息,顯示備份是否創(chuàng)建成功。好了,就是這樣我們已經(jīng)創(chuàng)建了一個腳本來對我們的重要文件做備份!

給 Windows 用戶的注釋
你可以把 source 列表和 target 目錄設(shè)置成任何文件和目錄名,但是在 Windows 中你得小心一些。問題是 Windows 把反斜杠(\)作為目錄分隔符,而 Python 用反斜杠表示轉(zhuǎn)義符! 所以,你得使用轉(zhuǎn)義符來表示反斜杠本身或者使用自然字符串。例如,使用'C:\Documents'或r'C:\Documents'而不是'C:\Documents'——你在使用一個不知名的轉(zhuǎn)義符\D!

現(xiàn)在我們已經(jīng)有了一個可以工作的備份腳本,我們可以在任何我們想要建立文件備份的時候使用它。建議 Linux/Unix 用戶使用前面介紹的可執(zhí)行的方法,這樣就可以在任何地方任何時候運(yùn)行備份腳本了。這被稱為軟件的實(shí)施環(huán)節(jié)或開發(fā)環(huán)節(jié)。

上面的程序可以正確工作,但是(通常)第一個程序并不是與你所期望的完全一樣。例如,可能有些問題你沒有設(shè)計恰當(dāng),又或者你在輸入代碼的時候發(fā)生了一點(diǎn)錯誤,等等。正常情況下,你應(yīng)該回到設(shè)計環(huán)節(jié)或者調(diào)試程序。