2011-02-09 72 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在脚本的其他部分。