Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #21362
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Subject | Re: sys.stdout.detach() results in ValueError |
| Date | 2012-03-07 19:10 -0500 |
| References | <alpine.DEB.2.00.1203072032590.2657@pebbe> <mailman.494.1331158511.3037.python-list@python.org> <alpine.DEB.2.00.1203072335240.2657@pebbe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.496.1331165460.3037.python-list@python.org> (permalink) |
On 3/7/2012 5:35 PM, Peter Kleiweg wrote: > Dave Angel schreef op de 7e dag van de lentemaand van het jaar 2012: > >> On 03/07/2012 02:41 PM, Peter Kleiweg wrote: >>> I want to write out some binary data to stdout in Python3. I >>> thought the way to do this was to call detach on sys.stdout. But >>> apparently, you can't. Here is a minimal script: >>> >>> #!/usr/bin/env python3.1 >>> import sys >>> fp = sys.stdout.detach() >>> >>> Not yet using fp in any way, this script gives the following error: >>> >>> Exception ValueError: 'underlying buffer has been detached' in >>> >>> Same in Python 3.1.4 and Python 3.2.2 >>> >>> So, what do I do if I want to send binary data to stdout? >>> >>> >>> >> >> sys.stdout.write( some_binary_data ) > > TypeError: must be str, not bytes Right, you can only send binary data to file opened in binary mode. The default sys.stdout is in text mode. I am pretty sure that remains true even if stdout is redirected. (You did not mention your OS.) You would have to open such a file and make sys.stdout point to it. sys.stdout = my_binary_file. But why do that? Just open the file and write to it directly without the above. -- Terry Jan Reedy
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
sys.stdout.detach() results in ValueError Peter Kleiweg <pkleiweg@xs4all.nl> - 2012-03-07 20:41 +0100
Re: sys.stdout.detach() results in ValueError Dave Angel <d@davea.name> - 2012-03-07 17:14 -0500
Re: sys.stdout.detach() results in ValueError Peter Kleiweg <pkleiweg@xs4all.nl> - 2012-03-07 23:35 +0100
Re: sys.stdout.detach() results in ValueError Terry Reedy <tjreedy@udel.edu> - 2012-03-07 19:10 -0500
Re: sys.stdout.detach() results in ValueError Mark Tolonen <metolone@gmail.com> - 2012-03-07 16:41 -0800
Re: sys.stdout.detach() results in ValueError Benjamin Peterson <benjamin@python.org> - 2012-03-08 03:49 +0000
csiph-web