Python

2016-03-25 6 views
-1

ile metin dosyalarını birleştirin/birleştirme Birleştirme python programında oldukça yeniyim.Python

Tabloları birleştirebilirim ancak şimdi belirli kimliklere sahip tabloları birleştirmek/birleştirmek zorunda kaldığımda sorun yaşıyorum.

İki .txt dosyam var! txt1 olarak

ben gibi numaralar (kimlik) vardır: O (veya benzeri) gibi bir sonuç şey elde etmek istiyorum ben kimlikleri

1 733786 102807 
2 734475 102995 
3 735009 103403 
4 734878 103728 
5 735694 103722 

ile koordinatlar var txt2 olarak

5 
3 
4 
1 
2 

nerede Txt1'deki sayıların yanındaki doğru koordinatları, siparişi

5 735694 103722 
3 735009 103403 
4 734878 103728 
1 733786 102807 
2 734475 102995 

Bu kodu

with open("1.txt", "r") as a, open("2.txt", "r") as b: 
    h = {line1.strip():line2.strip() for line1,line2 in zip(a,b)} 
with open("RESULT.txt", "w") as out: 
    for k,v in h.iteritems(): 
     out.write("{} {}\n".format(k,v)) 

kullanmak ama iyi ama emir değildir ve

1 4 734878 103728 
3 2 734475 102995 
2 5 735694 103722 
5 1 733786 102807 
4 3 735009 103403 
+1

aslında size size yardımcı olmak için bize göstermek istediğim bir şey denedi? Yoksa sadece birinin sizin işinizi veya ev ödevlerini sizin için yapmasını mı istiyorsunuz? –

cevap

0
with open("text2") as f: 
    data = dict(row.split(None,1) for row in f) 
with open("output.txt","wb") as f_out,open("text1") as f: 
    for line in f: 
     f_out.write("%s %s" % (line.strip,data.get(line.strip(),"")) 
+0

Size de çok teşekkür ederim! –

0

Bu hile yapmak gerekir önemli olacağını katıldı aşağıdaki sonucu verir etmek. SO'ya hoşgeldiniz. Bir dahaki sefere, bize şimdiye kadar denediğin şeyi göster, böylece sana daha iyi yardımcı olabiliriz.

with open('txt1.txt') as file1: 
    txt1 = file1.read().splitlines() 

with open('txt2.txt') as file2: 
    txt2 = file2.read().splitlines() 

with open('txt1.txt', 'w') as new_file: 
    new = '' 
    for line_a in txt1: 
     for line_b in txt2: 
      if line_a[0] == line_b[0]: 
       new_file.write(line_b + '\n') 
+0

Yardımlarınız için çok teşekkür ederim! Yapardım ama korktum, çıkmaz bir son! –