zoukankan      html  css  js  c++  java
  • Python3使用csv模块csv.writer().writerow()保存csv文件,产生空行的问题

    问题:csv.writer().writerow()保存的csv文件,打开时每行后都多一行空行

    解决方法:在open()内增加一个参数newline='' 即可
     
    问题现象:
     
    1.代码
    with open("C:\Users\XXX\Desktop\redis_log2.csv","w") as datacsv:
    csvwriter = csv.writer(datacsv,dialect=("excel"))
    csvwriter.writerow(["time","us","sy","cl","bcl","mem","rss","keys","cmd/s","exp/s","evt/s","hit%/s","hit/s","mis/s","aofcs"])
    for info in parsecsv:
    csvwriter.writerow([info["time"],info["us"],info["sy"],info["cl"],info["bcl"],info["mem"],info["rss"],info["keys"],info["cmd/s"],
    info["exp/s"],info["evt/s"],info["hit%/s"],info["hit/s"],info["mis/s"],info["aofcs"]])
    2.导出的CSV用Excel打开:
    


    更改好后的
    1.代码

    with open("C:\Users\XXX\Desktop\redis_log2.csv","w", newline='') as datacsv:
        csvwriter = csv.writer(datacsv,dialect=("excel"))
    csvwriter.writerow(["time","us","sy","cl","bcl","mem","rss","keys","cmd/s","exp/s","evt/s","hit%/s","hit/s","mis/s","aofcs"])
    for info in parsecsv:
    csvwriter.writerow([info["time"],info["us"],info["sy"],info["cl"],info["bcl"],info["mem"],info["rss"],info["keys"],info["cmd/s"],
    info["exp/s"],info["evt/s"],info["hit%/s"],info["hit/s"],info["mis/s"],info["aofcs"]])
    2.导出的CSV用Excel打开:
    
    
     
     
    对newline参数的解释:

    参数newline是用来控制文本模式之下,一行的结束字符。可以是None,’’, , , 等。

    当在读取模式下,如果新行符为None,那么就作为通用换行符模式工作,意思就是说当遇到 , 或 都可以作为换行标识,并且统一转换为 作为文本输入的换行符。当设置为空’’时,也是通用换行符模式工作,但不作转换为 ,输入什么样的,就保持原样全输入。当设置为其它相应字符时,就会判断到相应的字符作为换行符,并保持原样输入到文本。

    当在输出模式时,如果新行符为None,那么所有输出文本都是采用 作为换行符。如果设置为’’或者 时,不作任何的替换动作。如果是其它字符,会在字符后面添加 作为换行符。

  • 相关阅读:
    工厂对象模式简介
    (转)HelloWorld CMake CMake中构建静态库与动态库及其使用
    C和C++混合编程
    Google glog 使用
    VS2013 越来越慢
    shell 的语法
    (十二)命令模式详解(故事版)
    (十一)外观模式详解(Service第三者插足,让action与dao分手)
    (十)装饰器模式详解(与IO不解的情缘)
    (九)模板方法模式详解(包含与类加载器不得不说的故事)
  • 原文地址:https://www.cnblogs.com/meitian/p/4625011.html
Copyright © 2011-2022 走看看