我试图迭代两个不同的文本文件,并根据两个文件中每行开头找到的帐号创建一个合并文件。我首先阅读包含语句数据的主文件并读取每一行,直到找到与前一行不匹配的帐号,然后我开始迭代第二个文件并尝试将任何匹配的帐号与之前的匹配阻止文件1.我遇到这个部分时遇到了麻烦。
一些样本数据将是:
File1 .... File2
000990 000990是我的合作伙伴
000990 000990是我的合作伙伴
000760 000530是我的合作伙伴
000760 000530是我的合作伙伴
000530 000999是我的合作伙伴
000530 000999是我的合作伙伴
000999
期望的输出
000990
000990
000990是我的合作伙伴
000990是我的合作伙伴
000760
000760
000553
000553
000530是我的合作伙伴
000530是我的合作伙伴
000999
000999是我的合作伙伴
000999是我的合作伙伴
这是我到目前为止尝试过的代码。任何帮助或建议将不胜感激。 感谢
x=open('testaccount.txt')
y=open('accountpartner.txt')
count=1
inv_count=1
for line in x:
if count==1:
a=x.readline()
print('S'+line, end='')
if line[0:6]==a[0:6]:
print('S'+line, end='')
elif line[0:6]!=a[0:6]:
for inv_line in y:
if inv_count==1:
b=y.readline()
if b[0:6]==a[0:6]:
print('I',b,end='')
inv_count+=1
print('break')
print('S'+line,end='')
a=line
count=1
continue
count+=1
print('this is a',a)
答案 0 :(得分:1)
使用词典。编写自己的排序合并要简单得多。
with open('accountpartner.txt') as aFile:
lookup = {}
for line in aFile:
lookup[line[:6]]= line
def make_groups( source ):
group = []
key= None
for line in source:
if line[:6] != key:
if group: yield key, group
group= []
key= line[:6]
group.append( line )
if group: yield key, group
with open('testaccount.txt') as main:
for key, group in make_groups( main ):
if key in lookup:
print key, group, lookup
else:
print key, group, None