Issue1521491
Created on 2006-07-12 22:04 by rudnik_lior, last changed 2009-04-15 21:25 by amaury.forgeotdarc.
|
msg29150 - (view) |
Author: Lior (rudnik_lior) |
Date: 2006-07-12 22:04 |
|
Python 2.5b1 (r25b1:47027, Jun 20 2006, 09:31:33)
Assuming documentation is correct: (from seek() help
"Note that if the file is opened for appending (mode
'a' or 'a+'), any seek() operations will be undone at
the next write"
Doing the following is __not__ undoing the seek
operation after calling this a few times (Simplified
code snippet):
from __future__ import with_statement
with open(path,'a+') as f:
f.seek(0,2) # go to end
pos = f.tell()
f.seek(0,0)
line = f.readline().strip()
f.seek(0,2) # go to end, not effective if opened
with mode a/a+ (currently bug?)
f.write("something")
Calling the above code repeatedly didnt increase the
file size beyond 166 bytes (in my code)
|
|
msg29151 - (view) |
Author: Lior (rudnik_lior) |
Date: 2006-07-12 22:09 |
|
Logged In: YES
user_id=1364480
Re-tried the code with empty file - it doesnt grow beyond
creating and writting at position 0 so it seems the seek
does influence the write position.
|
|
msg29152 - (view) |
Author: Neal Norwitz (nnorwitz) |
Date: 2006-07-13 06:29 |
|
Logged In: YES
user_id=33168
This seems to work for me on Linux. Maybe we are testing
differently. What o/s and version are you using? Does this
work with Python 2.4? Can you attach a complete test case
that demonstrates this problem?
Thanks.
|
|
msg29153 - (view) |
Author: Georg Brandl (georg.brandl) |
Date: 2006-07-13 07:43 |
|
Logged In: YES
user_id=849994
I also cannot see any problem with the above code and can
append to a file indefinitely. What exactly are you
expecting the code to do, and what do you get? Which OS is this?
|
|
msg29154 - (view) |
Author: Lior (rudnik_lior) |
Date: 2006-07-28 13:35 |
|
Logged In: YES
user_id=1364480
This issue is on windows XP.
Wasnt tested on other versions (only 2.5b1 and b2)
I expect the code to always write at the end according to
the documentation. However if I user file seek (opend as A+)
to read from begining of the file, the write also goes to
begining of file.
Note - in the code snippet, please remove the last
f.seek(0,2) to see the problem! (it should have been in a
comment)
|
|
msg29155 - (view) |
Author: Georg Brandl (georg.brandl) |
Date: 2006-07-28 18:54 |
|
Logged In: YES
user_id=849994
Perhaps you can try in on Windows, Tim...
|
|
msg84506 - (view) |
Author: Daniel Diniz (ajaksu2) |
Date: 2009-03-30 05:06 |
|
Can anyone confirm this for Windows and 2.6? Closing otherwise.
|
|
msg86001 - (view) |
Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) |
Date: 2009-04-15 21:25 |
|
I can't reproduce it with python2.6 on Vista. The newer C runtime
(msvcr90.dll) probably corrected this.
|
|
| Date |
User |
Action |
Args |
| 2009-04-15 21:25:18 | amaury.forgeotdarc | set | status: pending -> closed
nosy:
+ amaury.forgeotdarc messages:
+ msg86001
resolution: out of date |
| 2009-03-30 05:06:50 | ajaksu2 | set | status: open -> pending
versions:
+ Python 2.6, - Python 2.5 nosy:
+ ajaksu2 title: file.seek() influelce write() when opened with a+ mode -> file.seek() influences write() when opened with a+ mode messages:
+ msg84506 priority: normal -> low
type: behavior stage: test needed |
| 2006-07-12 22:04:18 | rudnik_lior | create | |
|