2011-02-09 74 views
0

我在Python編寫的腳本,但不能像檢查目錄,文件創建等情況下使用多刺,python函數中的字符串變量?

我用它來獲取用戶輸入:drive = raw_input('enter drive name to make backup ')

if not os.path.exists('/media/%s/backup' %drive): 
    os.mkdir('/media/%s/backup' %drive) 

上面的代碼工作,但下面的tar文件被給了一個錯誤........

./backup4.py 
enter drive name to make backup PENDRIVE 
Traceback (most recent call last): 
    File "./backup4.py", line 17, in <module> 
    tarFile = tarfile.open("/media/%s/backup/%s.tar.bz2" %drive %dateVar, 'w:bz2') 
TypeError: not enough arguments for format string 


tarFile = tarfile.open("/media/%s/backup/%s.tar.bz2" %drive %dateVar, 'w:bz2') 

我應該做出上述tarfile.open什麼樣的變化?

回答

6

您的字符串格式不正確。您需要傳遞一個等於您的字符串中的替換量的變量元組。

tarFile = tarfile.open("/media/%s/backup/%s.tar.bz2" % (drive, dateVar), 'w:bz2') 
+0

是的,謝謝你的簡單的字符串操作! – 2011-02-09 07:07:51

2

我會建議保持格式化的東西了tarfile.open(),如下面的代碼片斷:

file_name = "/media/{0}/backup/{1}.tar.bz2".format(drive, dateVar) 
tarFile = tarfile.open(file_name, 'w:bz2') 

這樣你可以用正確的格式重用你FILE_NAME在腳本的其他部分。