Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #98507
| From | Jussi Piitulainen <harvesting@makes.email.invalid> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: using binary in python |
| Date | 2015-11-09 11:58 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <lf5ziynxznx.fsf@ling.helsinki.fi> (permalink) |
| References | <mailman.164.1447060794.16136.python-list@python.org> |
kent nyberg writes:
[- -]
> Well, lets assume I want to write and read binary. How is it done?
[- -]
You open the file with mode "wb" (to write binary) or "rb" (to read
binary), and then you write or read bytes (eight-bit units).
>>> data = '"binääridataa"\n'.encode('utf-8')
>>> f = open('roska.txt', 'wb')
>>> f.write(data)
17
>>> f.close()
The .encode methods produced a bytestring, which Python likes to display
as ASCII characters where it can and in hexadecimal where it cannot:
>>> data
b'"bin\xc3\xa4\xc3\xa4ridataa"\n'
An "octal dump" in characters (where ASCII, otherwise apparently octal)
and the corresponding hexadecimal shows that it is, indeed, these bytes
that ended up in the file:
$ od -t cx1 roska.txt
0000000 " b i n 303 244 303 244 r i d a t a a "
22 62 69 6e c3 a4 c3 a4 72 69 64 61 74 61 61 22
0000020 \n
0a
0000021
In UTF-8, the letter 'ä' is encoded as the two bytes c3 a4 (aka 303 244,
and you are welcome to work them out in binary, or even in decimal
though that is less transparent when what you want to see is bits). In
other encodings, there might be just one byte for that letter, and there
are even encodings where the ASCII letters would be different bytes.
Fixed-sized numbers (32-bit, 64-bit integers and floating point numbers
have conventional representations as groups of four or eight bytes). You
could interpret parts of the above text as such instead.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
using binary in python kent nyberg <kent@z-sverige.nu> - 2015-11-08 16:27 -0500
Re: using binary in python Jussi Piitulainen <harvesting@makes.email.invalid> - 2015-11-09 11:58 +0200
Re: using binary in python Larry Hudson <orgnut@yahoo.com> - 2015-11-09 22:20 -0800
Re: using binary in python Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-11-10 15:14 -0500
Re: using binary in python mm0fmf <none@mailinator.com> - 2015-11-10 20:36 +0000
Re: using binary in python Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-11-10 16:02 -0500
OT: Re: using binary in python mm0fmf <none@mailinator.com> - 2015-11-10 22:17 +0000
Re: using binary in python Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-11-10 21:22 +0000
Re: using binary in python Random832 <random832@fastmail.com> - 2015-11-10 19:03 -0500
Re: using binary in python Random832 <random832@fastmail.com> - 2015-11-10 19:04 -0500
Re: using binary in python Larry Hudson <orgnut@yahoo.com> - 2015-11-10 19:53 -0800
Re: using binary in python Random832 <random832@fastmail.com> - 2015-11-10 15:44 -0500
Re: using binary in python kent nyberg <kent@z-sverige.nu> - 2015-11-10 16:29 -0500
Re: using binary in python Christian Gollwitzer <auriocus@gmx.de> - 2015-11-11 22:32 +0100
Re: using binary in python Michael Torrie <torriem@gmail.com> - 2015-11-10 17:19 -0700
csiph-web