#python-2.7
Вопрос:
Я хочу написать нижеприведенный awk на python
awk 'FNR==1{print;next}!(NR%2){a=$0; next} {printf "%s %s%s%s", $1,a,FS,ORS}' FS=';' file
Я пробовал использовать
os.system(' awk "FNR==1{print;next}!(NR%2){a=$0; next} {printf "%s %s%s%s", $1,a,FS,ORS}" FS=';' file ')
Но я получаю синтаксическую ошибку.
Комментарии:
1. Синтаксическая ошибка, вероятно, подробно описала проблему, а если нет, то форматирование Python Stackoverflow. Обратите внимание на использование
'
междуos.system('
и'FNR
. Вы закрываете'
. Вместо этого вам нужно убедиться, что внутри одинарных кавычек вы используете только двойные кавычки или наоборот.2. Можете ли вы исправить код? Так будет лучше понять
3. Опубликовано ниже, чтобы помочь вам.
Ответ №1:
os.system('awk "FNR==1{print;next}!(NR%2){a=$0; next} {printf "%s %s%s%s", $1,a,FS,ORS}" FS=";" file ')
Обратите внимание, как все внутри '
котировок зеленое (отличается от вашего).
Комментарии:
1. Да, я понял вашу точку зрения. Я попробовал это .. но это также показывает синтаксическую ошибку
2. Если возникает синтаксическая ошибка
awk
, это означаетawk
, что сама команда нарушена, что, скорее всего, так и есть, потому что я только что запустил приведенный выше код на своей машине и получилawk: syntax error at source line 1
. В данном случае это не проблема Python.