simple file flow question with csv.reader
Terry Reedy
tjreedy at udel.edu
Wed Nov 2 19:50:36 EDT 2011
On 11/2/2011 7:06 PM, Dennis Lee Bieber wrote:
> On Wed, 2 Nov 2011 14:13:34 -0700 (PDT), Matt<macmanes at gmail.com>
> declaimed the following in gmane.comp.python.general:
>
>> I have a few hundred .csv files, and to each file, I want to
>> manipulate the data, then save back to the original file.
That is dangerous. Better to replace the file with a new one of the same
name.
> Option 1: Read the file completely into memory (your example is
> reading line by line); close the reader and its file; reopen the
> file for "wb" (delete, create new); open CSV writer on that file;
> write the memory contents.
and lose data if your system crashes or freezes during the write.
> Option 2: Open a temporary file "wb"; open a CSV writer on the file;
> for each line from the reader, update the data, send to the writer;
> at end of reader, close reader and file; delete original file;
> rename temporary file to the original name.
This works best if new file is given a name related to the original
name, in case rename fails. Alternative is to rename original x to
x.bak, write or rename new file, then delete .bak file.
--
Terry Jan Reedy
More information about the Python-list
mailing list