题记:
最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本都第一时间考虑python,可以让我把大量时间放在解决问题的思路上,而不是语言本身。这个时候才体会到什么叫“life is short, you need python!”的精髓!
==========================分割线==================================
【CSV】
CSV是一种广泛使用的文件格式,所谓“CSV”,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。出现在档案总管中的档案类型是「逗号分格」。excel文件可以直接保存为csv文件,在计算机中,csv也可以直接用excel打开,算是一种比较方便的操纵excel文件的方式吧。
主要是python自带csv的Module,可以直接import,它的操作方式也比较简单,就是普通的文件读写
打开,读取文件:
import csv file = csv.reader(file('my.csv','rb')) for line in file: for item in line: print item
这里注意,如果文件是一个对象则要加入b属性,读出来的数据可以看作一个二维列表,每一行就是csv文件的一行,而每个item,就是逗号分隔的每个数据(即excel中的一个框)
写文件:
import csv with open('eggs.csv', 'wb') as csvfile: #写文件格式是以行为单位写,每行‘[’内字符串以‘,’分隔‘]’ 或者使用算术表达式如下 spamwriter = csv.writer(csvfile) spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) #或是多行写 lists = [['1','2'], ['3','4']] spamwriter.writerows(lists)
【XLS】
先要装xlrd模块(读取xls):https://pypi.python.org/pypi/xlrd
安装方法,解压文件,然后在命令行下进入文件夹,使用python setup.py install
import xlrd wb = xlrd.open_workbook('eggs.xls') sn = wb.sheet_names() #获得工作所有表名 print 'sheet names :'+str(sn) #wb.sheet_by_name('name') 通过工作表名进入工作表 sh = wb.sheet_by_index(0) #通过index进入工作表 sheets = wb.sheets() #获取所有工作表 for sheet in sheets: for row in range(sheet.nrows): for col in range(sheet.ncols): print sheet.cell(row,col).value
安装了xlrd可以读取xls文件的内容了,如果需要写xls文件,还要安装xlwt:https://pypi.python.org/pypi/xlrd
安装方法一致
import xlwt; wb = xlwt.Workbook() ws = wb.add_sheet('mysheet') ws.write(0, 0, 1.01) #把表格想象成二维表,前2各参数是行列 ws.write(0, 1, 'haha') ws.write(1,0,'A') ws.write(1,1,'B') ws.write(1,2,'SUM') ws.write(2, 0, 123) ws.write(2, 1, 456) ws.write(2, 2, xlwt.Formula("A3+B3")) wb.save('example.xls')
实际结果:
不仅如此,在写入文件的时候还可以加入格式:(转自:http://www.crifan.com/export_data_to_excel_file_in_python/)
import xlwt; from datetime import datetime; style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',num_format_str='#,##0.00'); style1 = xlwt.easyxf(num_format_str='D-MMM-YY'); wb = xlwt.Workbook(); ws = wb.add_sheet('A Test Sheet'); ws.write(0, 0, 1234.56, style0); ws.write(1, 0, datetime.now(), style1); ws.write(2, 0, 1); ws.write(2, 1, 1); ws.write(2, 2, xlwt.Formula("A3+B3")); wb.save('example.xls');