CSV Files Written with Python: Resolving Blank Lines Between Rows
The issue stems from the way Python's csv.writer module handles line endings. When operating in translated text mode (the default setting), it writes both a carriage return (r) and a newline (n) into the file for each line. This can cause extra blank lines when viewed in Microsoft Excel on Windows.
Solution:
To prevent these blank lines, it is crucial to open the output file in untranslated text mode. In Python 3, use the following syntax:
with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile: writer = csv.writer(outfile)
The empty string ('') as the value for the newline parameter ensures that no line termination characters are added, thus resolving the blank line issue.
Additional Notes:
from pathlib import Path with Path('/pythonwork/thefile_subset11.csv').open('w', newline='') as outfile: writer = csv.writer(outfile)
from io import StringIO s = StringIO() writer = csv.writer(s) writer.writerow([1,2,3])
Note that the resulting string will still contain the Windows line terminator rn. To avoid this, use the newline='' parameter when writing the string to a file.
The above is the detailed content of How to Prevent Blank Lines in CSV Files Written with Python?. For more information, please follow other related articles on the PHP Chinese website!