2010-06-21 10 views
15

Im escribiendo un script que guarda la fecha y hora actual como un nombre de archivo pero aparece un error que dice "TypeError: no todos los argumentos convertidos durante el formateo de cadenas" Soy nuevo en Python y puedo de haber perdido algo obvio. Codifique a continuación:Python: no todos los argumentos convertidos durante el formato de cadena

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() 

Respuesta

29

Está colocando el formato de cadena en el lugar equivocado; que tiene que ser justo después de la cadena que se está formateada:

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

Es legal no pasa ningún argumento de formato, al igual que lo hizo con "%s.sql", pero no es legal para pasar argumentos, pero no la cantidad correcta ("w" % (today) pasa uno , pero no hay formato de cadenas en "w", por lo que se produce un error que no todos los argumentos se utilizaron)

+0

'>>> "% s% s% s" % ('asdf', 'asdf') 'me da' TypeError: no hay suficientes argumentos para la cadena de formato'. –

+0

@JonatanLittke Reparado –

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