Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

標準入力をwhileループで待ち受けるpython3スクリプトに名前付きパイプ越しに別の端末から文字列を送り付ける

なんだかクッソ長いタイトルですが……要は

  • python3側はwhileループで標準入力にきた結果を待ち構えている
  • 標準入力には別の端末で生成された文字列を送り込みたい

という課題を、これまで作ってきたモンの寄せ集めで作ってみましたという話

実際のところ

名前付きパイプの生成

$ mkfifo FOOBAR

python3側

標準入力からきた文字列を改行を取り除いて長さをprintするだけ
実際作ったものはロボットのSDKに接続されています

import sys

def yourFunction(buf):
  if (buf != "") :
    print(len(buf))

while True:
  data = sys.stdin.readline()
  data = data.rstrip('\n')
  yourFunction(data)

コマンド側(送り)

$ echo 12 > FOOBAR
$ echo 34 > FOOBAR

コマンド側(受け)

$ python3 serialCmdSample.py < FOOBAR
2
2