file position *tell()* works different

Peter Abel p-abel at t-online.de
Fri Sep 19 05:37:11 EDT 2003


Hi all,
I'm working under W2k with
Python 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on win32

I have a file *test_data.txt* with the following content:
0123456789
0123456789
abcdefghi
ABCDEFGHIJKLMNOPQ

and I work on it with the following python script:

# Open NOT in binary mode
fp=file('test_data.txt','r')
a='xx'
while a:
  print 'Filepointer: %3d' %  fp.tell()
  a=fp.readline()
fp.close()

print

# Open IN binary mode
fp=file('test_data.txt','r+b')
a='xx'
while a:
  print 'Filepointer: %3d' %  fp.tell()
  a=fp.readline()
fp.close()

Now, when test_data.txt is saved in PC-mode with 0xC, 0xA as newline
it works correct.
But when I save the file in UNIX-Mode with 0xA as newline,
my script gives me the following output, where that one with
the file not opened in binary mode is wrong:
Filepointer:   0
Filepointer:   7
Filepointer:  19
Filepointer:  30
Filepointer:  49
Filepointer:  51

Filepointer:   0
Filepointer:  11
Filepointer:  22
Filepointer:  32
Filepointer:  50
Filepointer:  51

When I try this under HP-UX it works fine in both cases.
So I wonder if the function *tell()* is not correctly implemented under win32.

Regards
Peter




More information about the Python-list mailing list