2010-06-21 56 views
15

林wrtiting一个脚本保存当前的日期和时间作为文件名,但我得到一个错误,指出“类型错误:无法在字符串格式化转换的所有参数”中转换的论点我是新来的Python andmay错过了明显的东西。代码如下:的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() 

回答

29

你把字符串格式化在错误的地方;它需要正确的多数民众赞成在格式化后的字符串:

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

这是合法的,不传递任何格式参数,像你这样"%s.sql"做,但它不是法律来传递参数,但没有合适的量("w" % (today)经过一个,但没有串"w"格式,让你得到,并非所有的参数使用错误)

+0

'>>> “%s%s%S” %( 'ASDF', '自卫队' )'给我'TypeError:没有足够的格式字符串参数。 – 2012-03-20 11:35:34

+0

@JonatanLittke固定 – 2012-03-20 13:40:42

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