echo -e "hoge\nfuge" |python templ.py --format json
{"line": "hoge"}
{"line": "fuge"}
echo -e "hoge\nfuge" |python templ.py --format raw
hoge
fuge
templ.py
import argparse
import sys
import json
parser = argparse.ArgumentParser(description='hoge')
parser.add_argument('--format', type=str, default="raw", help="output format")
args = vars(parser.parse_args())
type_of_format = args["format"]
while True:
line = sys.stdin.readline()
if not line: break
line = line.rstrip('\r\n')
if type_of_format == "json":
_dict = {"line": line}
print json.dumps(_dict)
else:
print line
メモ
for line in fileinput.input():
print line
だと、args があるとそれをファイルとして読みに行ってしまう。
stdin 強制モードとかあると良いのだが、無いように見える。