Python写入CSV文件用Excel打开出现行间空行如何解决
问题原因
这是Windows环境下Python写入CSV文件的典型兼容问题:Python以默认文本模式打开文件时,会自动对换行符做转义处理,而csv模块写入行数据时本身就会追加换行符,两层换行叠加就会导致每行数据后多出一个空行,用Excel打开时就会呈现隔行显示的效果。

触发问题的代码
import csv with open("self_taught.csv", "w") as csvfile: spamwriter = csv.writer(csvfile, delimiter=",") spamwriter.writerow(["one", "two", "three"]) spamwriter.writerow(["four", "five", "six"])
修复方案
调用open函数打开CSV文件时,传入参数newline='',关闭Python默认的自动换行转义逻辑,将换行处理完全交给csv模块即可。修正后的可正常运行代码如下:
import csv with open("self_taught.csv", "w", newline='') as csvfile: spamwriter = csv.writer(csvfile, delimiter=",") spamwriter.writerow(["one", "two", "three"]) spamwriter.writerow(["four", "five", "six"])
该写法是Python官方文档针对csv模块给出的标准跨平台兼容写法,在Windows、macOS、Linux系统下生成的CSV文件,用Excel、WPS等表格工具打开均不会出现多余空行问题。
内容的提问来源于stack exchange,提问作者HamU
相关产品推荐
相关产品推荐

