回答:
%
文字列をフォーマットするための構文は古くなっていることに注意してください。Pythonのバージョンがサポートしている場合は、次のように記述します。
instr = "'{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}'".format(softname, procversion, int(percent), exe, description, company, procurl)
これにより、たまたま発生したエラーも修正されます。
フォーマット引数をタプルに入れる必要があります(括弧を追加):
instr = "'%s', '%s', '%d', '%s', '%s', '%s', '%s'" % (softname, procversion, int(percent), exe, description, company, procurl)
あなたが現在持っているものは次のものと同等です:
intstr = ("'%s', '%s', '%d', '%s', '%s', '%s', '%s'" % softname), procversion, int(percent), exe, description, company, procurl
例:
>>> "%s %s" % 'hello', 'world'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
>>> "%s %s" % ('hello', 'world')
'hello world'
%
書式文字列でパーセント文字として使用すると、同じエラーが発生しました。これに対する解決策は、を2倍にすること%%
です。
"foo: %(foo)s, bar: s(bar)% baz: %(baz)s" % {"foo": "FOO", "bar": "BAR", "baz": "BAZ"}