Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Not all of arguments converted during string formatting

Im wrtiting a script which saves the current date and time as a filename but I get an error stating "TypeError: not all arguments converted during string formatting" I am new to Python andmay of missed something obvious. Code below:

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()
like image 719
Craig Avatar asked Jun 21 '10 22:06

Craig


1 Answers

You're putting the string formatting in the wrong place; it needs to be right after the string that's being formatted:

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

It's legal to not pass any formatting arguments, like you did with "%s.sql", but it's not legal to pass arguments but not the right amount ("w" % (today) passes one, but there's no string formatting in "w", so you get an error that not all of the arguments were used)

like image 153
Michael Mrozek Avatar answered Sep 21 '22 13:09

Michael Mrozek