簡明Python教程

來源:互聯網
上載者:User

我們已經研究了Python語言的眾多內容,現在我們將來學習一下怎麼把這些內容結合起來。我們將設計編寫一個能夠 做 一些確實有用的事情的程式。

問題

我提出的問題是: 我想要一個可以為我的所有重要檔案建立備份的程式。

儘管這是一個簡單的問題,但是問題本身並沒有給我們足夠的資訊來解決它。進一步的分析是必需的。例如,我們如何確定該備份哪些檔案?備份儲存在哪裡?我們怎麼樣儲存備份?

在恰當地分析了這個問題之後,我們開始設計我們的程式。我們列了一張表,表示我們的程式應該如何工作。對於這個問題,我已經建立了下面這個列表以說明 我 如何讓它工作。如果是你設計的話,你可能不會這樣來解決問題——每個人都有其做事的方法,這很正常。

需要備份的檔案和目錄由一個列表指定。

備份應該儲存在主備份目錄中。

檔案備份成一個zip檔案。

zip存檔的名稱是當前的日期和時間。

我們使用標準的zip命令,它通常預設地隨Linux/Unix發行版提供。Windows使用者可以使用Info-Zip程式。注意你可以使用任何地存檔命令,只要它有命令列介面就可以了,那樣的話我們可以從我們的指令碼中傳遞參數給它。

解決方案

當我們基本完成程式的設計,我們就可以編寫代碼了,它是對我們的解決方案的實施。

版本一

例10.1 備份指令碼——版本一

#!/usr/bin/python# Filename: backup_ver1.pyimport osimport 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 directorytarget_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 timetarget = 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 archivezip_command = "zip -qr '%s' %s" % (target, ' '.join(source))# Run the backupif os.system(zip_command) == 0:    print 'Successful backup to', targetelse:    print 'Backup FAILED'

(源檔案:code/backup_ver1.py)

輸出

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

現在,我們已經處於測試環節了,在這個環節,我們測試我們的程式是否正確工作。如果它與我們所期望的不一樣,我們就得調試我們的程式,即消除程式中的 瑕疵 (錯誤)。

它如何工作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.