簡體   English   中英

使用Python合並兩個文本文件

[英]Consolidating two text files with Python

我試圖遍歷兩個不同的文本文件,並根據兩個文件中每一行開頭的帳號創建一個合並文件。 首先,讀取包含語句數據的主文件,並讀取每一行,直到找到與上一行不匹配的帳號,然后開始遍歷第二個文件,並嘗試將任何匹配的帳號與上一個匹配從文件1阻止。進入此部分時遇到麻煩。

一些樣本數據將是:

File1 .... File2
000990 000990是我的伙伴
000990 000990是我的伙伴
000760 000530是我的伴侶
000760 000530是我的伴侶
000530 000999是我的伴侶
000530 000999是我的伴侶
000999

期望的輸出
000990
000990
000990是我的伴侶
000990是我的伴侶
000760
000760
000530
000530
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)

為此使用字典。 編寫自己的排序合並要簡單得多。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM