PEP 358 and operations on bytes
John Machin
sjmachin at lexicon.net
Tue Oct 3 23:05:41 EDT 2006
Gerrit Holl wrote:
> Hi,
>
> In Python 3, reading from a file gives bytes rather than characters.
> Some operations currently performed on strings also make sense when
> performed on bytes, either if it's binary data or if it's text of
> unknown or mixed encoding. Those include of course slicing and other
> operators that exist in lists, but also other operations that aren't
> currently defined in PEP 358, like:
>
> - str methods endswith, find, partition, replace, split(lines),
> startswith,
> - Regular expressions
>
> I think those can be useful on a bytes type. Perhaps bytes and str could
> share a common parent class? They certainly share a lot of properties
> and possible operations one might want to perform.
>
I look at it this way::
Processing text? Use unicode.
Binary structures and file I/O, interfacing to 8-bit-wide channels? Use
bytes.
Nostalgic for confused mixed-use? Don't upgrade.
IMHO, core dev time would be better used on:
* making /relevant/ modules (e.g. struct) work with bytes -- this topic
is not mentioned in the PEP.
* ensuring it covers everything that array.array('B', ...) does.
* being able to initialise a bytes array to (typically) all zeroes
without having to instantiate an initialiser e.g. record =
bytes(size=996, fill=0) instead of record = bytes(996 * [0])
than on starts(ends)with etc, and regexes.
Cheers,
John
More information about the Python-list
mailing list