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下的正确代码:

<span class="hljs-operator">with <span class="hljs-built_in">open(<span class="hljs-string">'egg2.csv', <span class="hljs-string">'w', newline=<span class="hljs-string">'') <span class="hljs-keyword">as cf:</span></span></span></span></span></span>

Original: https://www.cnblogs.com/to-creat/p/7215510.html
Author: Wei_java
Title: csv.writer写入文件有多余的空行

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/537028/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • i++和++i

    ++ 是 自增运算符 不给变量赋值 最后 i 的值都是一样的 给变量赋值 i++先赋值 后自增 ++i 先自增 后赋值 不能理解请 一条++操作配合一条输出语句 其他6条注释掉 执…

    Java 2023年6月8日
    063
  • go 语言开发1 环境配置和语言基础

    Go 语言环境配置 windows 环境变量: 设置 GOROOT (安装路径),GOPATH(工程目录) Path 中加入 %GOROOT%/bin 和 %GOPATH%/bin…

    Java 2023年6月6日
    085
  • elasticsearch 7.7.0 最新版+Java High Level REST Client测试

    服务端:elasticsearch 7.7.0 Docker部署 客户端:spring boot +thymeleaf+Java High Level REST Client 7….

    Java 2023年5月29日
    078
  • Mac APP store 更新页空白的解决办法

    如图,不知道什么时候起,我的 Mac APP store 的更新页面就变成了这样,即使有更新也依然显示空白。 试了几个网上搜到的方法,没效果,突然想到曾经看到有个工具可以在命令行进…

    Java 2023年6月5日
    0147
  • 心存好奇,心怀敬意

    走出舒适圈难,是因为走出去,除了要吃学习的苦,还要忍受心里的苦。 看到郭德纲的一段话: 从出生就挨打,一天八个嘴巴。这到 25 岁,铁罗汉活金刚一样,什么都不在乎。吃亏要趁早,一帆…

    Java 2023年6月16日
    067
  • springboot: mchange-commons-java-0.2.11.jar (系统找不到指定的文件)

    Springboot框架,引入C3P0,启动出现Bug The Class-Path manifest attribute in D:\develop\maven\reposito…

    Java 2023年5月29日
    055
  • 浅谈kali : arpspoof工具原理

    介绍 arpspoof是一个通过ARP协议伪造数据包实现中间人攻击的kali工具。 中间人攻击虽然古老,但仍处于受到黑客攻击的危险中,可能会严重导致危害服务器和用户。仍然有很多变种…

    Java 2023年6月7日
    067
  • 下载java 1.8

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月29日
    063
  • java 的多态 学习理解

    Father a = new Son(); 子类的实例引用 可以 无障碍 赋给 超类的对象变量; 可调用的方法: 以对象变量a 为例, a 能调用的方法 主要看 左边 的类型 里有…

    Java 2023年6月13日
    070
  • FLASH CS4 制作渐变 动画 有补间动画 传统补间

    下了个FLASH CS4 ,也许太久没玩FLASH了,很多东西都物是人非了,要弄个动画渐变一直不成功。 点来点去,发现有个”添加传统补间”,试一下,可以进行…

    Java 2023年6月13日
    053
  • JVM快速扫盲篇

    JVM虚拟机基础 JVM虚拟机结构 jvm的整体结构大致如下: 类加载器:类加载器用来加载Java类到JVM虚拟机中,源代码程序.java文件在经过编译器编译之后就被转换成字节代码…

    Java 2023年6月5日
    075
  • java利用Tesseract 识别身份证号码

    安装Tesseract http://blog.csdn.net/hiredme/article/details/50894814 http://blog.csdn.net/yoa…

    Java 2023年5月29日
    066
  • 基于Redisson的延迟队列实现

    package com.dong.mytest.demo.client; import cn.hutool.extra.spring.SpringUtil; import com….

    Java 2023年6月5日
    053
  • 设计模式【单例模式】(5种方法实现)

    什么是单例模式 这种单例模式说白了,就是我自己这个类创建自己的对象,而且只能有一个对象被创建,然后我会提供一种全局访问的方法,他们可以直接访问这个类,不需要一次次实例化该类的对象。…

    Java 2023年6月14日
    079
  • Mybatis学习笔记

    MyBatis 框架 MyBatis 框架 前言 第一章 框架的概述 1.三层架构 2. 三层架构请求的处理流程 3. 为什么要使用三层? 4. 三层架构模式和框架 5 .框架 6…

    Java 2023年6月5日
    041
  • Canal高可用架构部署

    一、前言 canal 是阿里的一款开源项目,纯 Java 开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了 MySQL(也支持 mariaDB)。 ca…

    Java 2023年6月6日
    067
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球