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

Cra*_*aig 16 python string formatting datetime

我是一个脚本,它将当前的日期和时间保存为文件名,但是我收到一条错误,指出"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()
Run Code Online (Sandbox Code Playgroud)

Mic*_*zek 29

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

f = open("%s.sql" % (today), "w")
Run Code Online (Sandbox Code Playgroud)

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