• python 写入CSV出现空白行问题及拓展


      最近在学习python,要求让出表格。期间在不懂得情况下,写了些代码,运行后发现存在输入写入猴行之间存在空白行。猴发现原来问题在打开文件的方式不对。

    现将我的学习交流经验分享如下:

    1,自己的起初代码:

    #coding=utf-8
    import string
    import csv
    
    
    resultlist = [{'合计':'合计','国有':110,'集体':112},
                  {'合计':'国有','国有':50,'集体':61},
                  {'合计':'合计','国有':50,'集体':40},
                  {'合计':'集体','国有':15,'集体':25}]
    csvFile = open("d:/data/data/3.csv", "w")
    # 文件头以列表的形式传入函数,列表的每个元素表示每一列的标识
    fileheader = ['合计',"国有","集体"]
    dict_writer = csv.DictWriter(csvFile, fileheader)
    dict_writer.writeheader()
    dict_writer.writerows(resultlist)
    

    2,运行后结果显示:

      小伙伴们清楚看到,行之间存在数据空白行吧。

    问题诊断:

      这就是w 和 wb的区别,w是以文本方式打开文件,wb是二进制方式打开文件,以文本方式打开文件时,fwrite函数每碰到一个0x0A时,就在它的前面加入0x0D.其它内容不做添加操作。

    拓展演示: 

      r 以只读方式打开文件,该文件必须存在。

      r+ 以可读写方式打开文件,该文件必须存在。

      rb+ 读写打开一个二进制文件,只允许读写数据。

      rt+ 读写打开一个文本文件,允许读和写。

      w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

      w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件 

      a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先内容会被保留。(EOF符保留)

      a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

      wb 只写打开或新建一个二进制文件;只允许写数据。

      wb+ 读写打开或建立一个二进制文件,允许读和写。 

      wt+ 读写打开或着建立一个文本文件;允许读写。 

      at+ 读写打开一个文本文件,允许读或在文本末追加数据。

      ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

    修改后:

      

                      静以修身,俭以养德 --文正公训言

  • 相关阅读:
    转: 关于linux用户时间与系统时间的说明
    转: 关于CAS cpu锁的技术说明。
    基于TCPCopy的Dubbo服务引流工具-DubboCopy
    Netty中的坑(下篇)
    编写明显没有错误的代码
    Zookeeper-Zookeeper client
    Zookeeper-Zookeeper leader选举
    Zookeeper-Zookeeper启动过程
    Zookeeper-Zookeeper的配置
    Zookeeper-Zookeeper可以干什么
  • 原文地址:https://www.cnblogs.com/China-YangGISboy/p/7339118.html
Copyright © 2020-2023  润新知