Overwrite just one line? Am I a n00b or is this impossible? Both? :D
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Wed Apr 6 17:11:57 EDT 2005
More information about the Python-list mailing list
Wed Apr 6 17:11:57 EDT 2005
- Previous message (by thread): Overwrite just one line? Am I a n00b or is this impossible? Both? :D
- Next message (by thread): Overwrite just one line? Am I a n00b or is this impossible? Both? :D
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In <1112821286.411004.225400 at f14g2000cwb.googlegroups.com>, Matt at revera wrote: > I'd like to overwrite just one line of a binary file, based on a > position set by seek(). Is there no way to do this? As far as I can > tell I need to read the whole file, change the line, and write it all > back out. Not exactly easy on the memory, but I see no other solution. > > so far: > > patchme.seek(offset) > patchme.write(a2b_hex(edit)) # the data is in hex first > patchme.close > print "Patching complete" > > This writes the data at the given offset, but _everything_ before it is > filled with 0's. Are you sure that you haven't opened the file with the wrong mode? :: In [69]: f = open('test.dat', 'w') In [70]: f.seek(1000) In [71]: f.write('hello') In [72]: f.close() In [73]: f = open('test.dat') In [74]: a = f.read() In [75]: f.close() In [76]: a Out[76]: '\x00\x00\x00\x00\x00\x00\x00\00<...>hello If you want to open an existing file without overwriting it you have to use mode "w+" or "a". Ciao, Marc 'BlackJack' Rintsch
- Previous message (by thread): Overwrite just one line? Am I a n00b or is this impossible? Both? :D
- Next message (by thread): Overwrite just one line? Am I a n00b or is this impossible? Both? :D
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list