On Thu, Jun 5, 2014 at 5:16 PM, Marko Rauhamaa <ma...@pacujo.net> wrote: > No problem there, only should sys.stdin and sys.stdout carry the > decoding/encoding out or should it be left for the program.
The most normal thing to do with the standard streams is to have them produce text, and as much as possible, you shouldn't have to go to great lengths to make that work. If, in Python, I say print("Hello, world!"), I expect that to produce a line of text on the screen, without my code having to encode that to bytes, figure out what sort of newline to add, etc, etc. Even if stdout isn't a tty, chances are you're still working with text. Only an extreme few Unix programs actually manipulate binary standard streams (some, like cat, will pipe binary through unchanged, but even cat assumes text for options like -n); those few should be the ones to have to worry about setting stdin and stdout to be binary. In the same way that we have double-quoted strings being Unicode strings, we should have print() and input() "naturally just work" with Unicode, which means they should negotiate encodings with the system without the programmer having to lift a finger. ChrisA -- https://mail.python.org/mailman/listinfo/python-list