這幾天在學習python,從昨天開始安裝了ubuntu系統以后,就開始研究這個備份文件的例子,可是無論如何,總是不成功,不是說
OSError: [Errno 2] No such file or directory:
就是說
OSError: [Errno 13] Permission denied:
這些錯誤都是因為一個os.mkdir()的系統模塊的方法,終於是把我惹急了,在這個方法之前添加了測試輸出語句,完全可以執行,很明顯就是這個方法搞得不對,google了一下os.mkdir();找到了一個硬貨,http://bbs.chinaunix.net/thread-1313995-1-1.html,發現我原來寫的target_dir里邊是沒有"./"的,估計是這種原因造成的,后來直接建了一個簡單的python源文件,
#/!usr/bin/python import os os.mkdir( './image/image2' )
測試通過,完全可以執行,后來研究了一下,這個路徑需要是當前路徑下的子文件夾,並且需要有“./”開頭,這個方式應該是資料中所說的相對目錄,后來又測試了一下絕對路徑,將路徑修改成了'/home/zaj/mypython/e',果然起效了,我記得剛才也有這樣寫過,可是沒有成功過阿,難道是錯覺,好吧,不管怎樣,我是把備份測試成功,並且初步了解了os.mkdir()的相對路徑和絕對路徑的創建文件夾,就這樣吧,今天到此為止,運動,休息,明天繼續搞,最后把測試代碼貼出來,其實是簡明教程里邊的源碼,只是對路徑進行了修改,源碼中真的沒有加相對路徑的“./”,也不知道是印刷問題還是版本問題,不管了,貼碼!
#!/usr/bin/python #Filename:backup_ver2.py import os import time source = ['/home/zaj/mypython/','home/zaj/mypython/image'] target_dir = '/home/zaj/mypython/e' #這是絕對路徑 #target_dir = './e'這個地方是相對路徑 today = target_dir + time.strftime('%Y%m%d') now = time.strftime('%H%M%S') print 'daozheli' if not os.path.exists(today): os.mkdir(today) print 'Successfully created directory', today target = today + os.sep + now + '.zip' zip_command = "zip -qr '%s' %s" % (target, ' '.join(source)) if os.system(zip_command) == 0: print 'Successful backup to', target else: print 'Backup FAILED'