解决csv.writer写入文件有多余的空行问题

在用csv.writer写入文件的时候发现中间有多余的空行。

最早打开方式只是‘w',会出现多余的空行,网上建议使用binary形式‘wb'打开可以解决问题:

with open('egg2.csv', 'wb') as cf:

不过只能在python2下运行,python3报错:

TypeError: a bytes-like object is required, not 'str'

有人建议用encode(‘utf-8')编码转变格式,但是觉得还是比较繁琐,因为list也不支持直接的编码。

再找了一圈,找到的最佳解释:

python2.x中写入CSV时,CSV文件的创建必须加上'b'参数,即csv.writer(open('test.csv','wb')),不然会出现隔行的现象。网上搜到的解释是:python正常写入文件的时候,每行的结束默认添加'n',即0x0D,而writerow命令的结束会再增加一个0x0D0A,因此对于windows系统来说,就是两行,而采用' b'参数,用二进制进行文件写入,系统默认是不添加0x0D的。

而python3.x中换成采用newline=''这一参数来达到这一目的。

这里python2和3的问题和解决方法都给出了。

最后

python3下的正确代码:

with open('egg2.csv', 'w', newline='') as cf:

以上这篇解决csv.writer写入文件有多余的空行问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 写入csv乱码问题解决方法

    需求背景 最近为公司开发了一套邮件日报程序,邮件一般就是表格,图片,然后就是附件.附件一般都是默认写到txt文件里,但是PM希望邮件里的附件能直接用Excel这种软件打开,最开始想保存为Excel,但是一想Excel的文件体积会多出好多倍,csv文件默认也是使用Excel打开的,但是根本还是文本文件,体积小,保存也方便,于是最终决定使用csv模块来保存文件. Python写csv文件 Python提供了内置模块读写csv文件,这里我只用到了写,读这里就不做介绍了,也不难,主要是解决乱码问题. d

  • Python用csv写入文件_消除空余行的方法

    只做简单地记录,方便一下使用!python关于csv模块的介绍网上有很多资料,这里就不在赘诉.直接给出代码和解释. 数据: Symbol,Price,Date,Time,Change,Volume "AA",39.48,"6/11/2007","9:36am",-0.18,181800 "AIG",71.38,"6/11/2007","9:36am",-0.15,195500 "

  • Python写入CSV文件的方法

    本文实例讲述了Python写入CSV文件的方法.分享给大家供大家参考.具体如下: # _*_ coding:utf-8 _*_ #xiaohei.python.seo.call.me:) #win+python2.7.x import csv csvfile = file('csvtest.csv', 'wb') writer = csv.writer(csvfile) writer.writerow(['id', 'url', 'keywords']) data = [ ('1', 'http

  • 解决csv.writer写入文件有多余的空行问题

    在用csv.writer写入文件的时候发现中间有多余的空行. 最早打开方式只是'w',会出现多余的空行,网上建议使用binary形式'wb'打开可以解决问题: with open('egg2.csv', 'wb') as cf: 不过只能在python2下运行,python3报错: TypeError: a bytes-like object is required, not 'str' 有人建议用encode('utf-8')编码转变格式,但是觉得还是比较繁琐,因为list也不支持直接的编码.

  • 解决Python字典写入文件出行首行有空格的问题

    模拟购物车程序,判断用户薪资是否是0 如果是0就需要输入薪资,并记录到文件内. 可以预先存个字典格式的字符串,然后去读取文件的时候读到的是字字符串然后再去用eval去转换成字典. 当我们覆盖写到文件的时候就会发现首行会有空格,当我们再去读取eval的时候就会报错,那怎么样可以解决这个问题呢! import json info = { 'lisi':0, 'zhangshan':100, } f = open('json.txt','w') f.write(json.dumps(info)) {"

  • python使用writerows写csv文件产生多余空行的处理方法

    初次接触python,学艺不精,第一次实战写一个文本处理的小程序时便遇到了头疼的问题. 先看代码: 生成的.CSV文件每两行之间都会多出一行空格(如下图),具体原因可参看点击打开链接 with open('E:\\test.csv','wt')as fout: cout=csv.DictWriter(fout,list_attrs_head )#list_attrs_head头属性列表 cout.writeheader() cout.writerows(list_words) 上面链接中的这位大

  • python写入数据到csv或xlsx文件的3种方法

    本文实例为大家分享了三种方式使用python写数据到csv或xlsx文件,供大家参考,具体内容如下 第一种:使用csv模块,写入到csv格式文件 # -*- coding: utf-8 -*- import csv with open("my.csv", "a", newline='') as f: writer = csv.writer(f) writer.writerow(["URL", "predict", "

  • Python将列表数据写入文件(txt, csv,excel)

    写入txt文件 def text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表. file = open(filename,'a') for i in range(len(data)): s = str(data[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择 s = s.replace("'",'').replace(',','') +'\n' #去除单引号,

  • Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用

    目录 一.csv.writer()方法的基本使用 二.csv.DictWriter()方法的基本使用 总结 一.csv.writer()方法的基本使用 示例代码1: import csv data = [ (1,"cat",18), (2,"dog",17), (3,"tigger",16), ] f = open('test.csv','a',encoding='utf8',newline='') writer = csv.writer(f)

  • centos下file_put_contents()无法写入文件的原因及解决方法

    centos下file_put_contents()无法写入文件的原因是没有文件夹权限 直接修改目标文件夹/文件 # chmod 777 文件夹名称 以上这篇centos下file_put_contents()无法写入文件的原因及解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Centos系统下“无法打开并写入文件”问题的解决

    摘要 最近在工作中发行限了一个问题,当前是root用户,去编辑/etc/ssh/sshd_config 却提示没有权限修改.报错如"/etc/ssh/sshd_config" E212: 无法打开并写入文件. 问题思考 既然提示没有权限,又是root用户,看肯定是给该文件设置了特殊的权限.检查特殊权限设置: getfacl lsattr getfacl 结果正常 root@pts/1 $ getfacl /etc/ssh/sshd_config getfacl: Removing le

  • php解决crontab定时任务不能写入文件问题的方法分析

    本文实例讲述了php解决crontab定时任务不能写入文件问题的方法.分享给大家供大家参考,具体如下: 今天使用crontab写的定时任务没有执行,很纳闷. crontab.php <?php error_reporting(0); $time = date("Y-m-d h:i:s",time()); file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND); cront

随机推荐