On Tue, Oct 29, 2013 at 8:02 PM, Victor Hooi <victorh...@gmail.com> wrote: > Hi, > > I have a CSV file that I will repeatedly appending to. > > I'm using the following to open the file: > > with open(self.full_path, 'r') as input, open(self.output_csv, 'ab') as > output: > fieldnames = (...) > csv_writer = DictWriter(output, filednames) > # Call csv_writer.writeheader() if file is new. > csv_writer.writerows(my_dict) > > I'm wondering what's the best way of calling writeheader() only if the file > is new? > > My understanding is that I don't want to use os.path.exist(), since that > opens me up to race conditions. > > I'm guessing I can't use try-except with IOError, since the open(..., 'ab') > will work whether the file exists or not. > > Is there another way I can execute code only if the file is new? > > Cheers, > Victor
I've not tested, but you might try with ... open(...) as output: ... if output.tell() == 0: csv_writer.writeheader() ... HTH -- Zach (failed to send to the list first time around...) -- https://mail.python.org/mailman/listinfo/python-list