[Python-ideas] Adding an 'errors' argument to print

Victor Stinner victor.stinner at gmail.com
Sun Mar 26 04:31:09 EDT 2017


print(msg) calls sys.stdout.write(msg): write() expects text, not bytes. I
dislike the idea of putting encoding options in print. It's too specific.
What if tomorrow you replace print() with file.write()? Do you want to add
errors there too?

No, it's better to write own formatter function as shown in a previous
email.

Victor

Le 25 mars 2017 8:50 PM, "Michel Desmoulin" <desmoulinmichel at gmail.com> a
écrit :



Le 24/03/2017 à 17:37, Victor Stinner a écrit :
> *If* we change something, I would prefer to modify sys.stdout. The
> following issue proposes to add
> sys.stdout.set_encoding(errors='replace'):
> http://bugs.python.org/issue15216
>
> You can already set the PYTHONIOENCODING environment variable to
> ":replace" to use "replace" on sys.stdout (and sys.stderr).
>
> Victor

This is not the same. You may want to locally apply "errors=replace" and
not the whole program.

Indeed, this can silence encoding problems. So I would probably never
set in to errors at dev time except for the few places where I know I
can explicitly silence errors.

I quite like this print(errors="replace|ignore"). This is not going to
cause any trouble, and can only help.

_______________________________________________
Python-ideas mailing list
Python-ideas at python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170326/36e763e2/attachment.html>


More information about the Python-ideas mailing list