今天来看一下如何使用python处理excel文件,处理excel文件是在工作中经常用到的,python为我们考虑到了这一点,python中本身就自带csv模块。
1.用python读取csv文件:
csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx 直接重命名为csv的话会报错:
Error: line contains NULL byte
insun解决方案:出错原因是直接是把后缀为xls的execl文件重命名为csv的 正常的要是另存为csv文件 就不会报错了
譬如我们有这么个csv文件:
小编推荐一个学python的学习qun 945,8790,25
无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
#!/usr/bin/env python# -*- coding:utf-8 -*- import csv withopen('egg.csv','rb') as f: reader= csv.reader(f)for rowin reader:print row
打印出来是这样的list
['a', '1', '1', '1'] ['a', '2', '2', '2'] ['b', '3', '3', '3'] ['b', '4', '4', '4'] ['b', '5', '5', '5'] ['b', '6', '6', '6'] ['c', '7', '7', '7'] ['c', '8', '8', '8'] ['c', '9', '9', '9'] ['c', '10', '10', '10'] ['d', '11', '11', '11'] ['e', '12', '12', '12'] ['e', '13', '13', '13'] ['e', '14', '14', '14']
2.用python写入并生成csv
#!/usr/bin/env python # -*- coding:utf-8 -*- import csv withopen('egg2.csv','wb') as csvfile: spamwriter= csv.writer(csvfile, delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL) spamwriter.writerow(['a','1','1','2','2']) spamwriter.writerow(['b','3','3','6','4']) spamwriter.writerow(['c','7','7','10','4']) spamwriter.writerow(['d','11','11','11','1']) spamwriter.writerow(['e','12','12','14','3'])
这样存进去的是存到一列了 跟我们原本意图存进5列不一样
使用python的csv生成excel所兼容的csv文件的话,主要就是创建writer时的参数时要有dialect=’excel’
代码修改为:
#!/usr/bin/env python # -*- coding:utf-8 -*- import csv withopen('egg2.csv','wb') as csvfile: spamwriter= csv.writer(csvfile,dialect='excel') spamwriter.writerow(['a','1','1','2','2']) spamwriter.writerow(['b','3','3','6','4']) spamwriter.writerow(['c','7','7','10','4']) spamwriter.writerow(['d','11','11','11','1']) spamwriter.writerow(['e','12','12','14','3'])
领取专属 10元无门槛券
私享最新 技术干货