Writing CSV through Python Lists leads to blank rows between the data

31 views Asked by At

I have an example of writing a csv from python:

import csv

# field names 
fields = ['Name', 'Branch', 'Year', 'CGPA'] 

# data rows of csv file 
rows = [ ['Nikhil', 'COE', '2', '9.0'], 
     ['Sanchit', 'COE', '2', '9.1'], 
     ['Aditya', 'IT', '2', '9.3'], 
     ['Sagar', 'SE', '1', '9.5'], 
     ['Prateek', 'MCE', '3', '7.8'], 
     ['Sahil', 'EP', '2', '9.1']] 

 with open('Test.csv', 'w') as f:
 
# using csv.writer method from CSV package
 
 write = csv.writer(f)
 write.writerow(fields)
 write.writerows(rows)

this works fine, except i have the following result:

Name,Branch,Year,CGPA

Nikhil,COE,2,9.0

Sanchit,COE,2,9.1

Aditya,IT,2,9.3

Sagar,SE,1,9.5

Prateek,MCE,3,7.8

Sahil,EP,2,9.1

As you can see in my csv i have blanks between the data. I dont understand where these breaks come from, any idea?

1

There are 1 answers

0
RamsesII On BEST ANSWER

You can add newline = '' in your writer part:

import csv

fields = ['Name', 'Branch', 'Year', 'CGPA']
rows = [['Nikhil', 'COE', '2', '9.0'],
        ['Sanchit', 'COE', '2', '9.1'],
        ['Aditya', 'IT', '2', '9.3'],
        ['Sagar', 'SE', '1', '9.5'],
        ['Prateek', 'MCE', '3', '7.8'],
        ['Sahil', 'EP', '2', '9.1']]

with open('Test.csv', 'w', newline = '') as f:
    writer = csv.writer(f)
    writer.writerow(fields)
    writer.writerows(rows)