我正在尝试将字符串变量和硬编码的'%d'值放入 - 这是不可变的(unfornatelly 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”“”,/%d /但它不起作用。
怎么做?
答案 0 :(得分:2)
试试这个:
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)
这使用新的格式字符串。