Python 将变量放入字符串+;硬编码%d值

Python 将变量放入字符串+;硬编码%d值,python,Python,我试图将其放入字符串变量和硬编码的“%d”值中,该值不是变量(不幸的是,python将其作为intiger变量)。例如: Error="""awk -v col="%s" -F"," '{ if(NF != col) printf("Index: %d, NR, NF-1); }' "%s" > %s"""%(variable1,variable2,variable3) 现在我犯了一个错误: TypeError: %d format: a number is required, not

我试图将其放入字符串变量和硬编码的“%d”值中,该值不是变量(不幸的是,python将其作为intiger变量)。例如:

Error="""awk -v col="%s" -F"," '{ if(NF != col) printf("Index: %d, NR, NF-1); }' "%s" > %s"""%(variable1,variable2,variable3)
现在我犯了一个错误:

TypeError: %d format: a number is required, not str.
因此,主要问题是“%d”值,我尝试使用“%d”,但它不起作用

怎么做

试试这个:

Error="""awk -v col="%s" -F"," '{ if(NF != col) printf("Index: %%d, NR, NF-1); }' "%s" > %s"""%(variable1,variable2,variable3)
这使用
%%
,解析为
%%
。另一个解决方案:

Error="""awk -v col="{}" -F"," '{ if(NF != col) printf("Index: %d, NR, NF-1); }' "{}" > {}""".format(variable1,variable2,variable3)
这将使用新的格式字符串

试试这个:

Error="""awk -v col="%s" -F"," '{ if(NF != col) printf("Index: %%d, NR, NF-1); }' "%s" > %s"""%(variable1,variable2,variable3)
这使用
%%
,解析为
%%
。另一个解决方案:

Error="""awk -v col="{}" -F"," '{ if(NF != col) printf("Index: %d, NR, NF-1); }' "{}" > {}""".format(variable1,variable2,variable3)

这将使用新的格式字符串

使用
“%s”
。。。或者更好,使用
格式
。我不明白,我已经使用了“%s”。但是我想返回带有静态“%d”值的错误字符串-出于awk目的,如果您使用
格式
%d
不会导致错误。请使用
'%s'
。。。或者更好,使用
格式
。我不明白,我已经使用了“%s”。但我想返回带有静态“%d”值的错误字符串-出于awk目的,如果您要使用
格式
%d
不会导致错误。@maciek2791如果此答案对您有帮助,请单击投票按钮下方的灰色复选标记接受它。@maciek2791如果此答案对您有帮助,请通过单击投票按钮下方的灰色复选标记接受。