为什么像 `"A %s", "B" % "C"` 的代码不将 "C" 插入第一个字符串?
我正在写一个脚本,目的是把当前的日期和时间保存为文件名,但我遇到了一个错误,提示“TypeError: not all arguments converted during string formatting”。我对Python还不太熟悉,可能漏掉了什么明显的东西。下面是我的代码:
from subprocess import Popen
import datetime
today = datetime.date.today()
today = str(today)
print today
f = open("%s.sql", "w" % (today))
x = Popen(["mysqldump", "-u", "root", "-pucsdrv", "normalisationtion"], stdout = f)
x.wait()
f.close()
1 个回答
30
你把字符串格式化放错地方了;它应该紧跟在要格式化的字符串后面:
f = open("%s.sql" % (today), "w")
不传任何格式化参数是可以的,就像你用的 "%s.sql"
这样,但如果你传了参数却没有传对数量就不行了(比如 "w" % (today)
传了一个参数,但 "w"
里没有格式化,所以会报错,提示你没有用完所有的参数)