Empty space in between rows after using writer in python

Just add newline='' where you are opening the file. It works for me. e.g., csvFileName = open('file.csv', 'w', newline= '')


I am using Python 3.6 and it seems that

csv.writer(open("test_step1.csv", "wb"), delimiter=",", newline="")

is not correct. Rather, newline="" should added in the open() clause.


Please note that csv 1.0 in Windows (requires '\n') and MAC OS (optional). The code below will output .csv file with no spaces between next line. It works in MAC and Windows.

import csv
for i in range (5):
    MyList=[]
    MyList.append(i)
    cnword=0
    with open('test_step1.csv', 'a') as f:
        for item in MyList:
            if cnword != len(MyList)-1:
                f.write("%s," % item)
            else:
                f.write("%s" % item)
            cnword+=1

        f.write("\n" )  
    myList=[]

You need to open the file in wb mode try:

import csv

filereader = csv.reader(open("tests.csv", "r"), delimiter=",")
filewriter = csv.writer(open("test_step1.csv", "wb"), delimiter=",", newline="")
#Delete header
for row in filereader:
    if row[0].isdigit():
        filewriter.writerow(row)

The csv.writer writes \r\n into the file directly.

If you don't open the file in binary mode, it will write \r\r\n because on Windows text mode will translate each \n into \r\n.

edit:

For python 3 had to add newline="" to csv.writer as per this answer