2011-02-09 3 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) 

Приведенный выше код работает, но ниже файл обработан дает ошибку ........

./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

да спасибо за простую струнную манипуляцию !! –

2

Я хотел бы предложить, чтобы держать вещи форматирования из tarfile.open(), как в следующем фрагменте кода:

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

В этом случае вы можете повторно использовать имя_файла с надлежащим форматированием в других частях вашего скрипта.