Python 学习笔记 -处理excel

大体的需求如下:

从已有的数据字典中(xslx)查找出对应的字段,翻译txt中的数据内容

txt中的内容如下:

customer id_card mobile
{
  "alm_m3_id_bank_allnum" : "1",
  "alm_m3_id_bank_orgnum" : "1",
  "alm_m3_id_bank_selfnum" : "0",
  "code" : "00",
  "flag_applyloanmon" : "1",
  "swift_number" : "xxxx"
}
......

xslx中内容如下:

keyvalue
alm_m3_id_bank_allnum近3月内,xxxxxx
alm_d15_id_bank_orgnum近15天内,xxxxxx

……


用Java来处理这样的需求肯定不是最佳的,正好最近在学python,刚好可以实战下。

思路

  1. 从xslx读取数据,形成python的字典结构;
  2. 依次读取txt中的数据,逐行翻译,将结果输入到新的list;
  3. 利用产生的list生产翻译后的文件。

实现

读取xlsx中的内容,生成数据字典。

import xlrd
def dictInit():
    data = xlrd.open_workbook('xxxx.xlsx')
    table = data.sheets()[0]
    nrows = table.nrows
    for i in range(nrows):
        row_value = table.row_values(i)
        # print(row_value[1], row_value[4])
        key = "_".join(row_value[1].split("_")[2:])
        value = ",".join(row_value[4].split(",")[1:])
        print(key, value)
        dict[key] = value

逐行匹配txt中的内容,把翻译后的结果放入结果list中。

def formateTxt():
    str = ""
    results=[]
    file = open("xxxxx.txt",'r',encoding='utf-8')
    for line in file.readlines():
        lineTxt =  line.split(":")
        if len(lineTxt) > 1:
            key_words = lineTxt[0].strip().strip('"').split("_")
            key = "_".join(key_words[2:])
            if (dict.__contains__(key)):
                date = key_words[1]
                m = ""
                n = ""
                if date[0] == "d":
                    m = "天"
                elif date[0] == "m":
                    m = "月"
                res = dict[key]+lineTxt[1]
                results.append('近'+date[1]+m+'内,'+res)
        else:
            results.append(line)
    return results

运行的主函数,最后将结果输出到新的txt中。

dict = {}
dictInit()
results = formateTxt()
r = '\n'.join(results)
f = open("result.txt","w",encoding='utf-8')
f.write(r)
f.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值