版权声明:版权所有,盗版必究。欢迎转载收藏。 https://blog.csdn.net/yl_best/article/details/82850997
项目需要,先处理txt文档,从中提取数值,然后将其转存为csv档来做数据分析。
- Python代码
#!/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:
完整代码如下供各位参考:
#!/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(追加)方式。
文件打开模式之间的区别可以参考如下链接: