python函数中的字符串变量?

python函数中的字符串变量?,python,function,string,Python,Function,String,我正在用python编写一个脚本,但在检查目录、文件创建等情况下无法使用多个Sting 我用它来获取用户输入:drive=raw\u input('enter drive name to make backup') 上面的代码正在运行,但下面的tar文件给出了一个错误 ./backup4.py enter drive name to make backup PENDRIVE Traceback (most recent call last): File "./backup4.py", li

我正在用python编写一个脚本,但在检查目录、文件创建等情况下无法使用多个Sting

我用它来获取用户输入:
drive=raw\u input('enter drive name to make backup')

上面的代码正在运行,但下面的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')
/backup4.py
输入驱动器名称以进行备份PENDRIVE
回溯(最近一次呼叫最后一次):
文件“/backup4.py”,第17行,在
tarFile=tarFile.open(“/media/%s/backup/%s.tar.bz2”%drive%dateVar,'w:bz2'))
TypeError:格式字符串的参数不足
tarFile=tarFile.open(“/media/%s/backup/%s.tar.bz2”%drive%dateVar,'w:bz2'))

我应该对上面的tarfile.open做什么更改

您的字符串格式不正确。您需要传递一个变量元组,该元组等于字符串中的替换量

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

我建议不要在tarfile.open()中使用格式化内容,如下代码片段所示:

file_name = "/media/{0}/backup/{1}.tar.bz2".format(drive, dateVar)
tarFile = tarfile.open(file_name, 'w:bz2')
通过这种方式,您可以在脚本的其他部分重新使用具有正确格式的文件名

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