>> I am trying to read in an ascii text file, do some alterations and write it
>> back.
>>
Sounds like a pretty useful thing to do :)
>> file = open(self.config.get('pdf','cert') + '/cert.pdf' , 'r+')
>> lines = file.readlines()
>>
Not sure what self.config.get here is doing, but that's not exactly
pertinent to the discussion.
>> ... process lines ...
>>
>> file.writelines(lines)
>> file.close()
>>
>> works but ends up appending a second modified copy to the original ... as
>> per
>> the python ref.
>>
>
> I'm surprised it wors at all. When I use writelines on a file that's
> opened for read, I get an IOError.
>
Notice the "r+" mode that Dave is using.
>
>>>> f = open("glorp.txt","r")
>>>> lines = f.readlines()
>>>> lines.reverse() # just something to show the file's been changed
>>>> f.writelines(lines)
>>>>
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> IOError: (0, 'Error')
>
Here Terry's using "r".
"r+" means open for reading and appending.
"r" is just normal reading.
>
>> Am I right in thinking that the only way is to open with a 'r', close then
>> open with a 'w' ?
>>
I believe Dave could somehow remove the contents of the file,
and put back in what he wants, but it's probably easier to just reopen
the file.
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor