根據銀行卡號查詢該銀行卡的簽發銀行
阿新 • • 發佈:2019-02-01
這是我第一次寫部落格,如果有不對的或者繞彎的還請各位大神指點下,畢竟還是個新手,這個小程式也是我現實中遇到的需求,下面是我的思路;
需求:一批銀行卡號現在儲存在一個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)