subprocessでよくコマンドと対話することがある。Pythonのプログラムから外部プログラムの標準入力に書き込み、返答を標準出力から読み込む。いつものようにそういうことしていたら今日はデッドロックになった。 $ cat x.files | python cpio_wrapper.py naive | cpio -t # 何時迄まって待てど終らず… ^CTraceback (most recent call last): File "cpio_wrapper.py", line 100, in f() File "cpio_wrapper.py", line 56, in naive pip.stdin.write(line) KeyboardInterrupt コマンドの標準入力に書き込むところで刺さっている。入力を減らしてやると上手くいく。 $ cat x.files | head