Pythonでコマンド作成
By Patineboot
- 1 minutes read
- 213 words
pythonでコマンドを作成したい場合、標準入力があればそれを利用、なければそのほかの処理をしたい場合があると思います。
sys.stdin.readlines()で標準入力を読み込むとブロッキングしてしまいますが、それを回避する方法があれば解決します。
解決方法としては、select.selectを使用します。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import select
if __name__ == "__main__":
rlist, wlist, xlist = select.select([sys.stdin],[],[],0)
if not rlist:
print "standard io is empty"
sys.exit()
lines = sys.stdin.readlines()
for line in lines:
print line.strip()
実行例
./pipe.py
結果
standard io is empty
実行例
ls ./pipe.py | ./pipe.py
結果
./pipe.py