How Can I Stop Python's Csv.dictwriter.writerows From Adding Empty Lines Between Rows In Windows?
Solution 1:
In Python 2: Open the file in binary mode, always;
csv.DictWriter()
writes\r\n
line endings:withopen(filename, 'ab') as outputfile: writer = csv.DictWriter(outputfile, fieldnames)
From the
csv.writer()
documentation:If csvfile is a file object, it must be opened with the ‘b’ flag on platforms where that makes a difference.
In Python 3: Open the file with
newline=''
socsv.DictWriter()
can control the newlines written without translation:withopen(filename, 'a', newline='') as outputfile: writer = csv.DictWriter(outputfile, fieldnames)
Again, quoting the relevant
csv.writer()
documenation:If csvfile is a file object, it should be opened with
newline=''
[ ... ]
If
newline=''
is not specified, newlines embedded inside quoted fields will not be interpreted correctly, and on platforms that use\r\n
linendings on write an extra\r
will be added. It should always be safe to specifynewline=''
, since the csv module does its own (universal) newline handling.
Post a Comment for "How Can I Stop Python's Csv.dictwriter.writerows From Adding Empty Lines Between Rows In Windows?"