Python3: writing csv files

csv, python, python-3.x, windows

Solution

Documentation says that you should use `open('eggs.csv', 'w', newline='')`

http://docs.python.org/py3k/library/csv.html#id2

Problem

I'm trying to use Python 3.2 on a Windows computer to write a simple CSV file, however I'm having no luck. From the csv module documentation for Python 3.2: ``` >>> import csv >>> spamWriter = csv.writer(open('eggs.csv', 'w'), delimiter=' ', ... quotechar='|', quoting=csv.QUOTE_MINIMAL) >>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans']) >>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) ``` produces a file with each line terminated by the byte sequence `\r\r\n`, so it looks like each line has an extra empty line when you open it with, e.g., MS Excel. This is not a "CSV file". Note, if I try the same example for Python 2.7 in Python 3.2 (where the big difference is `'w'` vs `'wb'` for the file mode), I get an error when I try `spamWriter.writerow`: Traceback (most recent call last): File "", line 1, in TypeError: 'str' does not support the buffer interface How do I write a simple CSV file from Python 3.2 on a Windows computer?

Original source