ログにgrep検索を実行して結果を出力するスクリプトを作成しようとしています。 サブプロセスよりも簡単なのでEnvoyを使用しようとしますが、grepコマンドを実行すると、そのようなファイルoディレクトリがないというエラーが返されます。grep envoy.runでそのようなファイルやディレクトリがありません
ディレクトリ構造が簡単である:
- 。スクリプトの#ルート #スクリプトファイル
マイtest.pyで検索するログイン含まれてい
import envoy
def test(value):
search = "grep 'cv="+str(value)+"' ./web_logs/log/log_*"
print(search) #check of the search string
r = envoy.run(search)
print(r.status_code, r.std_out, r.std_err)#check of the command
response = r.std_out
if __name__ == "__main__":
test(2)
次のとおりです。
:grep 'cv=2' ./web_logs/log/log_*
(2, '', 'grep: ./web_logs/log/log_*: No such file or directory\n')
私は同じコマンドを実行した場合
grep 'cv=2' ./web_logs/log/log_*
ログファイルに文字列 "cv = 2"が含まれています。
どこがエラーですか?
更新答え 後の問題は、それがあると私は特使を改善するためにグロブモジュールの使用して、より良い勉強しようとして、私は、サブプロセスを使用して特使はグロブモジュールを使用せずに爆発することができないこと*の使用です。
私が使用した新しいコードは次のとおりです。
import subprocess
def test(value):
search = "grep 'cv="+str(value)+"' ./web_logs/log/log_*"
print(search) #check of the search string
proc = subprocess.check_output(search, shell=True)
print proc.split('\n')
if __name__ == "__main__":
test(2)
'c = 2'を等号が含まれていない項に変更するとうまくいきますか?私は「特使」には慣れていないので、これは間違いなく暗闇の中のショットです。 – tripleee