私は長い間、以下のエラーを修正しようとしていますが、なぜこのエラーがトリガーされているのかわかりません。私はfile
を直接ログファイル名に置き換えようとしました。day1
はファイルの総単語数を与えています。Python - 予期しないトークン `| '
>>> import os
>>> ports =["1080"]
>>> os.chdir("/var/logs")
>>> for i in range(0, len(ports)):
... file = os.popen("ls -al |grep -i access|grep -w %s.0|awk \'{print $9}\'" %ports[i]).read()
... day1 = os.popen("sudo cat %s|wc -l" %file).read()
...
sh: -c: line 1: syntax error near unexpected token `|'
sh: -c: line 1: `|wc -l'
本当にありがとうございます。
回答:
問題は空白のためです。空白を削除すると問題が解決しました。
file = os.popen("ls -al |grep -i access|grep -w %s.0|awk \'{print $9}\'" %ports[i]).read().strip()
引用符が間違っています。 '| ' '|'にする必要があります – umutto
'ls'、' grep'、 'awk'だけを呼び出すのであれば、Pythonを使うべきではありません。実際のシェルを作るか、Pythonでネイティブに行います。 –
私はこのことについて言及していません '| 'コードで私はここに何も足りないでしょうか? – Premchand