最近在做资料处理时发现,使用csv模组的writerow做多笔写入时,每笔之间会莫名其妙空一行。这样的状况在记事本看不出来,用excel就会发现了。根据网路查询得知,windows系统下会帮每一行结尾多加一个看不见的”进位符号”,然而这个动作writerow本身就会帮我们做,所以等于重複按Enter两次。避免这种状况一般常见的解决方法是以binary的方式开启档案:
f = open("xxx.csv","wb")
c = csv.writer(f)
1
2
然而这种方法在Python 3 下会产生错误:
ValueError: binary mode doesn’t take a newline argument
用python3 写入csv 总是多一个空行,查阅python3文档,发现有一个参数可以设置。就是newline 配置成空即可
f = open('xxx.csv', 'w', newline='')
1
后面加个newline='' 的参数就好了。不过这招在Windows系统下有用,不知道到了Linux下会不会变成完全不会进位了?
f = open("xxx.csv","wb")
c = csv.writer(f)
1
2
然而这种方法在Python 3 下会产生错误:
ValueError: binary mode doesn’t take a newline argument
用python3 写入csv 总是多一个空行,查阅python3文档,发现有一个参数可以设置。就是newline 配置成空即可
f = open('xxx.csv', 'w', newline='')
1
后面加个newline='' 的参数就好了。不过这招在Windows系统下有用,不知道到了Linux下会不会变成完全不会进位了?