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?
Write CSV files with csv.DictWriter() class can be used to write to a CSV file from a Python dictionary. Here, file - CSV file where we want to write to. fieldnames - a list object which should contain the column headers specifying the order in which data should be written in the CSV file.
By using pandas. DataFrame. to_csv() method you can write/save/export a pandas DataFrame to CSV File. By default to_csv() method export DataFrame to a CSV file with comma delimiter and row index as the first column.
Documentation says that you should use open('eggs.csv', 'w', newline='')
http://docs.python.org/py3k/library/csv.html#id2
This will work on both Python 2 and Python 3:
if sys.version_info >= (3,0,0):     f = open(filename, 'w', newline='') else:     f = open(filename, 'wb') 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With