[csv module] duplication of end of line character in output file generated

S

simon.alexandre

Hi all,

I use csv module included in python 2.3. I use the writer and encouter the
following problem: in my output file (.csv) there is a duplication of the
end of line character, so when I open the csv file in Ms-Excel a blank line
is inserted between each data line.

OS: W2k

Someone has an idea ?

thanks in advance

the source code is the following:

-------------------------------------------------->
import csv

class CsvDumper:

def __init__(self):
self.object =
[['la','mb','mc','md'],['ma','mb','mc','md'],['ma','mb','mc','md']]
self.writer = csv.writer(file("Test.csv", "w"))

def DumpCsvFile(self):
for row in self.object:
self.writer.writerow(row)

c = CsvDumper()
c.DumpCsvFile()
 
P

Peter Otten

simon.alexandre said:
I use csv module included in python 2.3. I use the writer and encouter the
following problem: in my output file (.csv) there is a duplication of the
end of line character, so when I open the csv file in Ms-Excel a blank
line is inserted between each data line.

OS: W2k

Someone has an idea ?

thanks in advance

the source code is the following:

-------------------------------------------------->
import csv

class CsvDumper:

def __init__(self):
self.object =
[['la','mb','mc','md'],['ma','mb','mc','md'],['ma','mb','mc','md']]
self.writer = csv.writer(file("Test.csv", "w"))

Try opening the file in binary mode: file("Test.csv", "wb")
 
K

Kent Johnson

simon.alexandre said:
Hi all,

I use csv module included in python 2.3. I use the writer and encouter the
following problem: in my output file (.csv) there is a duplication of the
end of line character, so when I open the csv file in Ms-Excel a blank line
is inserted between each data line.

From the docs for csv.writer():
writer( csvfile[, dialect='excel'[, fmtparam]])
...If csvfile is a file object, it must be opened with the 'b' flag on platforms where that
makes a difference.

Windows is a "platform where that makes a difference." So try
self.writer = csv.writer(file("Test.csv", "wb"))

Kent
OS: W2k

Someone has an idea ?

thanks in advance

the source code is the following:

-------------------------------------------------->
import csv

class CsvDumper:

def __init__(self):
self.object =
[['la','mb','mc','md'],['ma','mb','mc','md'],['ma','mb','mc','md']]
self.writer = csv.writer(file("Test.csv", "w"))

def DumpCsvFile(self):
for row in self.object:
self.writer.writerow(row)

c = CsvDumper()
c.DumpCsvFile()
 
S

simon.alexandre

ok thanks
it works

S.


Kent Johnson said:
simon.alexandre said:
Hi all,

I use csv module included in python 2.3. I use the writer and encouter the
following problem: in my output file (.csv) there is a duplication of the
end of line character, so when I open the csv file in Ms-Excel a blank line
is inserted between each data line.

From the docs for csv.writer():
writer( csvfile[, dialect='excel'[, fmtparam]])
...If csvfile is a file object, it must be opened with the 'b' flag on platforms where that
makes a difference.

Windows is a "platform where that makes a difference." So try
self.writer = csv.writer(file("Test.csv", "wb"))

Kent
OS: W2k

Someone has an idea ?

thanks in advance

the source code is the following:

-------------------------------------------------->
import csv

class CsvDumper:

def __init__(self):
self.object =
[['la','mb','mc','md'],['ma','mb','mc','md'],['ma','mb','mc','md']]
self.writer = csv.writer(file("Test.csv", "w"))

def DumpCsvFile(self):
for row in self.object:
self.writer.writerow(row)

c = CsvDumper()
c.DumpCsvFile()
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top