我正在尝试从stdin读取文本,使用该文本执行操作然后将结果发送到stdout。
char_stream = sys.stdin
input_text = char_stream.read()
output_text=do_stuff_with_text(input_text)
sys.stdout.write(output_text)
如果我对它说,utf8,它无法读取charstream,我认为它需要ASCII。我用谷歌搜索,似乎我读了这样的UTF-8
codecs.getreader("utf-8")(sys.stdin)
但是这只会与utf8兼容,这对我来说是不够的,因为我希望能够在任何文本文件中进行管道传输。实际上我还需要将输出编码为utf8。
这里常见的做法是什么,例如grep?我知道它不是用python编写的,但它仍然是一个有效的例子。我可以在任何格式的文本管道,它永远不会抛出错误。我将如何在python中实现它?