python读取文本问题——请各位相助!

#import pandas as pd
#import openpyxl

f = open('103041') #读取文本
a=f.readlines()
total=len(a)
total=len(a)
b=[]
c = []
d = []
n=0
m = 0
output={}#定义输出的字典
for line in a: #
    n+=1
    if "商户号" in line: #判断商户号并取出商户号到C列表
        b=line.strip().split()
        c.append(b[2].strip().split(":")[1])
        d.append(n) #判断商户号所在行,以便接下来读商户号所属的行
for line1 in a:
    m+=1
    if int(d[0])<m <int(d[1]): #判断行在两个读取的两个商户号之间的行时,将商户号作为KEY,行作为VALUES写入字典
        if ".00" in line1:
            output[c[0]]=line1.strip().split("|") 
            
    if int(d[1])<m <int(d[2]):  #判断行在两个读取的两个商户号之间的行时,将商户号作为KEY,行作为VALUES写入字典
        if ".00" in line1:
            output[c[1]]=line1.strip().split("|")
            
    if int(d[2])<m< total:  #判断行在两个读取的两个商户号之间的行时,将商户号作为KEY,行作为VALUES写入字典
        if ".00" in line1:
            output[c[2]]=line1.strip().split("|")
            
print (output)

但输出后显示不对:

D:\python\lqy\ceshi>python read_new.txt
{'104660000000643': ['黄海霞                                  ', '袁天一
                                           ', '借记卡         ', '62357360000000
009 ', '20.00                 ', '0.00                  ', '20.00
  ', '']}

D:\python\lqy\ceshi>只显示了最后一个商户号和最后一行数据

请大神帮忙查看原因或有更简单的写法

        
        
    

你试试这样是否可以

1. 用pd.read_csv()读取txt文件

2 . 数据整理

3. 用df.set_index('变量名').T.to_dict('list')   转换成你需要的字典格式, 字典里面前面是关键字, 后面是一个列表.

像这样

{'p': [1, 3, 2], 'q': [4, 3, 2], 'r': [4, 0, 9]}