【codecs.BOM】使用Python程序输出csv格式数据
来源:互联网 发布:计时器软件哪个好 编辑:程序博客网 时间:2024/06/03 13:07
这些天做一个数据处理的任务:
要求是输出一个csv格式的文件。
每次用NotePad++打开都正常,一用excel打开就一万个乱码,
好不容易乱码没了,用作分隔符的逗号也进单元格去了(变成单列了)
辛苦的查原因调试代码测试输出过程略去(以后要是有心情再来写好了)……
重点是!~
把能用的模板记录一下,以后说不定还要用呢QwQ
[Convert2Csv.py]
# -*- coding: utf-8 -*-import codecs from multiprocessing import Poolimport osimport reimport sysimport csvimport urllib2import commandsimport ConfigParserif __name__ == '__main__' : infile = "./outSort" with open('Features.csv', 'wb+') as csvfile: csvfile.write(codecs.BOM_UTF8) spamwriter = csv.writer(csvfile,dialect='excel') spamwriter.writerow(['Sign', 'Count', 'Feature', 'Info']) for each in [line for line in file(infile)] : list = ['0'] sublist1 = ['','',''] sublist2 = ['','',''] segs = each.split('\t') if not segs : break list.append(segs[0]) list.append(segs[1]) list.append(segs[2]) if segs[3]: sublist1.append(segs[3]) if segs[4]: sublist2.append(segs[4]) spamwriter.writerow(list) spamwriter.writerow(sublist1) spamwriter.writerow(sublist2)
输入:UTF-8编码文件
输出:Scv格式数据,使用Excel打开或NotePad打开中文均不乱码
要点:
with open('Features.csv', 'wb+') as csvfile: csvfile.write(codecs.BOM_UTF8) spamwriter = csv.writer(csvfile,dialect='excel')
spamwriter.writerow(list) # 传入一个list即可,写一行,每个元素为当前行的一列,若需要空行,请务必增加一个空字符串元素
【Updated 2016/03/18】
现在难度大了点,要合并单元格,于是就学着用了用xlwt和xlrd:
# -*- coding: utf-8 -*-import codecs from multiprocessing import Poolimport osimport reimport sysimport csvimport xlrdimport xlwtimport urllib2import commandsimport ConfigParserdef MakeCsv(): infile = "./outSort" with open('Features.csv', 'wb+') as csvfile: csvfile.write(codecs.BOM_UTF8) spamwriter = csv.writer(csvfile,dialect='excel') spamwriter.writerow(['Sign', 'Count', 'Feature', 'Info']) for each in [line for line in file(infile)] : list = ['0'] sublist1 = ['','',''] sublist2 = ['','',''] segs = each.split('\t') if not segs : break list.append(segs[0]) list.append(segs[1]) list.append(segs[2]) if segs[3]: sublist1.append(segs[3]) if segs[4]: sublist2.append(segs[4]) spamwriter.writerow(list) spamwriter.writerow(sublist1) spamwriter.writerow(sublist2)def MakeInput() : (status, output) = commands.getstatusoutput('sort -k1 -n -r outData > outSort') def Combine() : # Create a Workbook f = xlwt.Workbook() sheet = f.add_sheet(u'Feature',cell_overwrite_ok=True) # sheet.write(codecs.BOM_UTF8) # Generate 0-th line row0 = ['Sign', 'Count', 'Feature', 'Info'] for i in range(0,len(row0)): sheet.write(0,i,row0[i]) # Generate Others cur_row = 1 infile = "./outSort" for each in [line.decode('utf-8') for line in file(infile)] : segs = each.split('\t') if not segs : break sheet.write_merge(cur_row,cur_row+2,0,0,'0') sheet.write_merge(cur_row,cur_row+2,1,1,segs[0]) sheet.write_merge(cur_row,cur_row+2,2,2,segs[1]) sheet.write(cur_row,3,segs[2]) if segs[3]: sheet.write(cur_row+1,3,segs[3]) if segs[4]: sheet.write(cur_row+2,3,segs[4]) cur_row += 3 # print 'OVER' f.save('./Demo.xls') if __name__ == '__main__' : # MakeCsv() MakeInput() Combine()
0 0
- 【codecs.BOM】使用Python程序输出csv格式数据
- Highcharts使用CSV格式数据绘制图表
- 使用MATLAB加载csv格式数据
- Python 输出货币格式数据
- 有关使用xsl输出csv格式文档的实践小结
- 使用log4net将日志文件输出替csv格式
- python codecs
- python codecs
- python codecs
- [Python]使用csv dialect 读写数据
- 使用python pandas读取csv文件数据
- 使用python将csv文件数据可视化
- 使用python 3.0 处理utf8格式的文件BOM问题
- python -- 借助numpy保存数据为csv格式
- 利用python将json数据转换为csv格式
- python读取外部数据之读取csv格式
- Python Pandas读取中文格式CSV文件遇到的问题(UTF-8与UTF-8 BOM)
- 使用ADO.net链接到csv格式的数据.
- 我的简书
- tableViewCell中嵌套collectionViewCell 显示异常
- 郑轻OJ 1201 众数问题
- 软件测试基础
- 欢迎使用CSDN-markdown编辑器
- 【codecs.BOM】使用Python程序输出csv格式数据
- Java学习笔记-异常
- 选择排序
- opencv version_string.inc error: stray ‘\’ in program
- Servlet3.0 异步 servlet Comet 技术
- textview 实现跑马灯文字效果
- Socket编程:TCP客户端/服务器应用程序
- setValue:ForKeyPath
- golang入门--一个简单的http client