您的位置:首页 > 编程语言 > Python开发

Python通过writerow写入csv文件会有多余的空行 及 如何追加写入csv文件

2018-09-26 14:04 771 查看
版权声明:版权所有,盗版必究。欢迎转载收藏。 https://blog.csdn.net/yl_best/article/details/82850997

项目需要,先处理txt文档,从中提取数值,然后将其转存为csv档来做数据分析。

  • Python代码
[code]#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv

csvRow = ['01:01:00', '33000', '27589', '27070', '27070', '25855']
with open("test.csv","a+") as csvfile:
writer = csv.writer(csvfile)
for item in range(0, 3):
writer.writerow(csvRow)
  • 现象

用Notepad++打开档案(补上这个,怕有些朋友不会View->Show Symbol->Show All Characters ),发现每行末尾都有CR, CRLF,如下截图。

如果用Excel打开,两行中间会多出一空行,如下图:

  • 问题分析

现在就要搞清楚CR, CRLF分别是谁输出的。可以参考这个链接

https://bugs.python.org/issue7198

  • 解决办法​​​​​

将文档的打开方式改为二进制方式。

原来的打开方式:with open("test.csv","a+") as csvfile:

更改后打开方式:with open("test.csv","ab+") as csvfile:

 

完整代码如下供各位参考:

[code]#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv

csvRow = ['01:01:00', '33000', '27589', '27070', '27070', '25855']
with open("test.csv","ab+") as csvfile:
writer = csv.writer(csvfile)
for item in range(0, 3):
writer.writerow(csvRow)

更新后文件图片,用Notepad++打开如下:

用Excel打开图片如下:

  • Tips: 追加写入csv

将文档的打开方式由w(写入)改为a(追加)方式。

文件打开模式之间的区别可以参考如下链接:

Python File(文件) 方法_文件打开模式_mode参数

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: