are there some special about '\x1a' symbol

Mel mwilson at the-wire.com
Sat Jan 10 11:27:40 EST 2009


sim.sim wrote:

> Hi all!
> 
> I had touch with some different python behavior: I was tried to write
> into a file a string with the '\x1a' symbol, and for FreeBSD system,
> it gives expected result:
> 
>>>> open("test", "w").write('before\x1aafter')
>>>> open('test').read()
> 'before\x1aafter'
> 
> 
> but for my WinXP box, it gives some strange:
> 
>>>> open("test", "w").write('before\x1aafter')
>>>> open('test').read()
> 'before'
> 
> Here I can write all symbols, but not read.
> I've tested it with python 2.6, 2.5 and 2.2 and WinXP SP2.
> 
> Why is it so and is it possible to fix it?

'\x1a' is the End-of-file mark that Windows inherited from MS-DOS and CP/M. 
The underlying Windows libraries honour it for files opened in text mode.

open ('test', 'rb').read()

will read the whole file.

        Mel.




More information about the Python-list mailing list