python string format typeerror

Python TypeError: no hay argumentos suficientes para la cadena de formato



string (3)

Necesita poner los argumentos de formato en una tupla (agregar paréntesis):

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

Lo que tienes actualmente es equivalente a lo siguiente:

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

Ejemplo:

>>> "%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''

Aquí está la salida. Estas son cadenas utf-8, creo ... algunas de ellas pueden ser NoneType pero fallan inmediatamente, antes de que así sea ...

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

TypeError: no hay argumentos suficientes para la cadena de formato

Es 7 por 7 sin embargo?


Obtuve el mismo error al usar% como un carácter de porcentaje en mi cadena de formato. La solución a esto es duplicar el %%.


Tenga en cuenta que la sintaxis % para formatear cadenas se está quedando obsoleta. Si su versión de Python lo admite, debe escribir:

instr = "''{0}'', ''{1}'', ''{2}'', ''{3}'', ''{4}'', ''{5}'', ''{6}''".format(softname, procversion, int(percent), exe, description, company, procurl)

Esto también corrige el error que tenía.