【发布时间】:2020-01-31 07:38:56
【问题描述】:
我想做这样的事情:
data = json.load(open(sys.argv[1]) if len(sys.argv) > 1 else sys.stdin)
在这个例子中可以简化为
data = json.load(sys.stdin)
但是 json.load 运行一个 .read() 可能不包含我通过提供的整个 JSON 字符串
generate_json_output | myprogram.py
是否有推荐的方法从stdin 读取直到generate_json_output 终止?我试图抓住BrokenPipeError,但我跑的时候它没有被提升
while True:
data += sys.stdin.read()
【问题讨论】:
标签: python-3.x pipe stdin