美文网首页
Python处理文本文档(txt/excel/csv)

Python处理文本文档(txt/excel/csv)

作者: 李光胤 | 来源:发表于2017-10-09 15:14 被阅读0次

    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

    相关文章

      网友评论

          本文标题:Python处理文本文档(txt/excel/csv)

          本文链接:https://www.haomeiwen.com/subject/msfpyxtx.html