web-dev-qa-db-fra.com

Tous les arguments ne sont pas convertis lors du formatage des chaînes

Im writing un script qui enregistre la date et l'heure actuels en tant que nom de fichier, mais je reçois une erreur indiquant "TypeError: Tous les arguments convertis lors de la formatage des chaînes" Je suis nouveau sur Python et € de manquer quelque chose d'évident . Code ci-dessous:

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

Vous mettez le formatage de la chaîne au mauvais endroit; Il doit être juste après la formatage de la chaîne:

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

Il est légal de ne pas transmettre aucun argument de formatage, comme vous l'avez fait avec "%s.sql", Mais il n'est pas légal de passer des arguments, mais pas la bonne quantité ("w" % (today) passe un, mais il n'y a pas de formatage de chaîne dans "w", Vous avez donc une erreur que tous les arguments n'étaient pas utilisés)

29
Michael Mrozek
f = open("%s.sql" % today, "w")
4
gilesc