2016-08-24 2 views
0

Я пытаюсь ввести строковые переменные и жестко заданное значение «% d», которое не является переменной (unornatelly python принимает его как переменную intiger). Пример:Поместить переменную внутри строки + hardcoded% d значение

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/Но это не работает.

Как это сделать?

+1

Используйте ''% s'' ... или даже лучше, используйте 'format'. – DeepSpace

+0

Я не понимаю, я уже использовал «% s». Но я хочу вернуть Error String со статическим значением «% d» - для awk-цели – maciek2791

+0

Если вы будете использовать 'format','% d' не вызовет ошибку. – DeepSpace

ответ

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) 

Это использует строки нового формата.

+0

М, я знал, что это очень легко сделать ... спасибо! – maciek2791

+0

@ maciek2791 Если этот ответ вам помог, пожалуйста, примите его, нажав на серое галочку под кнопками голосования. –

+0

уверен, что сделано, еще раз спасибо! – maciek2791

Смежные вопросы