1.环境配置
pip install xlrd
pip install xlwt
pip install csv
安装完成后请在文件头部引用对应库
#coding:utf-8
import xlrd
import xlwt
import csv
2.处理非格式化文档
逐行读取:
fileHanlder=open('test.txt','r')
for line in fileHanlder:
if(line.find('a')>-1):
print line
fileHanlder.close()
find()方法是字符串内嵌的,检索字符串并返回关键词的位置(第一次出现),未找到关键词则返回-1
逐行写入:
word_buffer=['aa','dd','sdfsdf','sdsd']
fileHanlder=open('test.txt','w')
for item in word_buffer:
fileHandler.write(item+'\n')
fileHanlder.close()
3.处理excel文档
读取某个文件某一格的值:
workbook = xlrd.open_workbook('caipeipei.xlsx')#打开excel文件
sheet = workbook.sheet_by_name('xianshangyanzheng'.decode('utf-8'))#获取文件的一个表对象,表名必须是unicode编码
print sheet.cell_value(2,1)#打印第3行第2列的值,行列起点都是0
for i in range(0,sheet.nrows): #行数
print sheet.cell_value(i,1)
写入文件:
workbook = xlwt.Workbook(encoding = 'utf-8')#打开excel文件
try:
sheet = workbook.add_sheet('测试')
sheet.write(1,1,'啥')#在第2行第2列写入‘啥’
except Exception, e:
print Exception,':',e
finally:#写文件过程往往有业务逻辑,比较长。这么写如果业务逻辑有异常,已经处理好的内容不会丢失。
workbook.save('test.xls')
4.处理csv文档
首先打印文档的前几行,以确认文档是否有列标题:
fileHandler=open('test_feedback.csv')
count=0
for line in fileHandler:
if(count>2):
break
print line
count+=1
fileHandler.close()
如果文档没有标题,则只能使用列序号来获取数值:
with open('test_feedback.csv', 'rb') as f:# 采用b的方式处理可以省去很多问题
reader = csv.reader((line.replace('\0','') for line in f))#csv库缺陷,有空操作符会报错,因此先替换掉
count=0
for row in reader:
if(count>2):
break
print row[0]#打印每行的第一列值
count+=1
如果文档有标题,则可以用标题取值
with open('test_feedback.csv', 'rb') as f:# 采用b的方式处理可以省去很多问题
reader = csv.DictReader((line.replace('\0','') for line in f))#csv库缺陷,有空操作符会报错,因此先替换掉
count=0
for row in reader:
if(count>2):
break
print row['工单号'.decode('utf-8').encode('gbk')]#key的编码需要和csv文件一致
count+=1