標準出力に処理結果を出す系のPythonスクリプトを書き、netcatで飛ばそうとしたところ
BrokenPipeError: [Errno 32]
なるエラーが。
要するにパイプの受け渡しに失敗しているのは分かるのですが、じゃあどうすれば……?
答えはPython標準ライブラリのsignalにありました。
実際のところ
# 標準出力のエラー処理を抑制 # ないとBrokenPipeError: [Errno 32]がでる from signal import signal, SIGPIPE, SIG_DFL signal(SIGPIPE, SIG_DFL)
「標準出力をnetcatにつないで飛ばす」ケースの別の解法
受け手にも細工する必要がありますが……
出力元を問い合わせに応えるWEBサーバとし、受け手側から問い合わせてクエリを処理するという方法が考えられます。
JSONなら、requestsライブラリで受けて処理すると楽かも。
shuzo-kino.hateblo.jp