在 Python 中编写 CSV 文件时,在 Microsoft Excel 中遇到分隔每一行的空行可能会令人沮丧。此问题的出现是由于 csv.writer 处理行结尾的方式。
在 Python 3 中,以文本模式 ('w') 打开输出文件将导致 Windows 将每个换行符 ('n') 转换为回车符和换行符('rn')。为了防止这种情况,应该使用参数 newline=''(空字符串)以未翻译文本模式打开文件:
with open('thefile_subset11.csv', 'w', newline='') as outfile: writer = csv.writer(outfile)
或者,使用 Path 模块的 open() 方法还允许指定换行参数:
from pathlib import Path with Path('thefile_subset11.csv').open('w', newline='') as outfile: writer = csv.writer(outfile)
在 Python 2 中,解决方案是打开输出文件二进制模式('wb')而不是文本模式('w'):
with open('thefile_subset11.csv', 'wb') as outfile: writer = csv.writer(outfile)
对于使用 StringIO 的内存中操作,生成的字符串将包含 Windows 特定行终止符('rn')。将此字符串写入文件时,请记住使用 newline='':
from io import StringIO s = StringIO() writer = csv.writer(s) writer.writerow([1, 2, 3]) with open('thefile_subset11.csv', 'w', newline='') as f: f.write(s.getvalue())
以上是如何防止 Python CSV 输出到 Excel 中出现空行?的详细内容。更多信息请关注PHP中文网其他相关文章!