这是我第一次写博客,如果有不对的或者绕弯的还请各位大神指点下,毕竟还是个新手,这个小程序也是我现实中遇到的需求,下面是我的思路;
需求:一批银行卡号现在存储在一个txt文件中,每一行存储一个银行卡号,现在要求找出对应的所属银行
第一步:国内一般根据银行卡的开头来判断所属行,所以先找到合适的字典,我选择excle来存储字典
第二步:直接编写代码
# -*- coding: utf-8 -*-
# @Time : 2018/7/12 14:07
# @Author : xiangchaoming
# @QQ : 239036082
from openpyxl import *
# 将excle字典转换成python字典
def bankList():
workbook = load_workbook("bank.xlsx")
sheetnames = workbook.get_sheet_names() # 获得表单名字
sheet = workbook.get_sheet_by_name(sheetnames[0])
# 获取excle所有内容
i = 2
banks = dict()
while True:
start = sheet.cell(row=i,column=1).value
name = sheet.cell(row=i, column=2).value
if start is not None:
# print(str(start) + " = " + name)
banks[str(start)] = name # 在 Python 3 中使用
else:
break
i = i + 1
return banks
# 根据银行卡开头前10位到前两位数字判断所属银行
# bankNumber(银行卡号), bank_list(字典)
def parseBankNumber(bankNumber, bank_list):
f = open("res.txt", "a")
if len(bankNumber)>10:
i = 10
while i > 1:
try:
start = bankNumber[0:i]
# name = bankList()[start]
name = bank_list[start]
f.write(bankNumber + "_" + name + "\n")
print(bankNumber + "_" + name)
break
except Exception as e:
if i == 2:
f.write(bankNumber + "_" + "" + "\n")
# print("找不到")
continue
finally:
i = i - 1
else:
f.write(bankNumber + "_" + "" + "\n")
if __name__=="__main__":
bank_list = bankList()
for line in open("bankNumber.txt"):
# print(line,) # 后面跟 ',' 将忽略换行符
# print(line, end='')
parseBankNumber(line.replace("\n", ""), bank_list)