
On 5/25/2011 10:57 PM, INADA Naoki wrote:
Bytes supports some string methods. As exactly specified in 4.6.5. Bytes and Byte Array Methods There is really no need to repeat what everyone reading this knows.
I wrote
with open('tem.py', 'rb') as fin, open('tem2.txt', 'wb') as fout: for n, L in enumerate(fin): fout.write('{0:5d}\t'.format(n).encode('ascii')) fout.write(L)
(sys.x.fineno raises fineno AttributeError in IDLE.)
There are 2 problems.
1) binary mode doesn't support line buffering. So I should disable buffering and this may cause performance regression.
*nix already has a c-coded cat command; Windows has copy commands. So there is no need to design Python for this. Cat is usually used with files rather than terminals ans screens. When it is used with terminals and screens, the extra encode/decode does not matter. Realistic Python programs that actually do something with the text need to decode with the actual encoding, regardless of byte source. So I do not think we need a bytes alias for latin_1. The docs might mention that it is essentially a do-nothing codec. -- Terry Jan Reedy