web-dev-qa-db-ja.com

文字列のフォーマット中にすべての引数が変換されるわけではありません

現在の日時をファイル名として保存するスクリプトを作成していますが、「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()
16
Craig

文字列の書式を間違った場所に配置しています。フォーマットする文字列の直後に置く必要があります。

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

_"%s.sql"_で行ったように、書式設定引数を渡さないことは合法ですが、引数を渡すことはできませんが、適切な量ではありません("w" % (today)は1つを渡しますが、_"w"_なので、一部の引数が使用されなかったというエラーが表示されます)

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