Python TypeError:格式string没有足够的参数

这是输出。 这些是utf-8string,我相信…其中一些可以是NoneType,但它会立即失败,之前像那样…

instr = "'%s', '%s', '%d', '%s', '%s', '%s', '%s'" % softname, procversion, int(percent), exe, description, company, procurl 

TypeError:格式string没有足够的参数

7的7虽然?

请注意,格式化string的%语法已经过时。 如果你的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' 

在我的格式string中使用%作为百分比字符时出现同样的错误。 解决scheme是将%%翻倍。