Python:在字符串格式化期间并非所有参数都被转换

时间:2010-06-21 22:47:55

标签: python string datetime formatting

我写了一个脚本,它将当前日期和时间保存为文件名,但是我收到一条错误,指出“TypeError:并非在字符串格式化过程中转换了所有参数”我是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()

2 个答案:

答案 0 :(得分:29)

你把字符串格式放在错误的地方;它需要在正在格式化的字符串之后:

f = open("%s.sql" % (today), "w")

不传递任何格式化参数是合法的,就像你使用"%s.sql"一样,但传递参数但不合适的数量是不合法的("w" % (today)传递一个,但"w"中没有字符串格式{1}},所以你得到一个错误,并没有使用所有的参数)

答案 1 :(得分:4)

f = open("%s.sql" % today, "w")