2017-01-30 5 views
0

Ich habe eine Datei „input.txt“ zu subtrahieren, die 6 Spalten enthältPython-Code Spalte einer Zeile mit der vorherigen Zeile Spalte aus einer Datei

520743 ID:1  407585 16630998 70843 174935 
540743 ID:1  418010 17275747 70843 179499 
560744 ID:1  429340 17919579 70905 183799 
580744 ID:1  439450 18564636 70905 188148 
20595 ID:2  29487 625836 11282 10382 
40596 ID:2  45984 1264642 14266 20974 
21258 ID:3  46215 609159 20895 16586 
41259 ID:3  63166 1247485 24201 24052 
61257 ID:3  72732 1893258 24201 28660 

Ich möchte, dass die vorhergehende Zeile Spalte aus jeder Spalte Wert subtrahieren Wert, wenn tge ID ist das gleiche. Zum Beispiel Line2_cloumn3 - line1_column3: 418010 - 407585 = 10425 und auf eine andere Datei wie folgt schreiben:

20000 ID:1 10425 644749 0 4564 

Wie kann ich tun, dass in Python?

+0

Haben Sie schon einmal etwas versucht? Wie sieht dein Code aus? – filmor

Antwort

0
with open('input.txt') as inf, open('out.txt', 'w') as outf: 
prev = next(inf) 
string = prev.split()[1] 
abc=int(string.split(":",1)[1]) 
for line in inf: 
    string = prev.split()[1] 
    abc=int(string.split(":",1)[1]) 
    cstring = line.split()[1] 
    cabc=int(cstring.split(":",1)[1])  
    if abc==cabc: 
     value=[] 
     pval1=int(prev.split()[2]) 
     cval1=int(line.split()[2]) 
     val1=cval1-pval1 
     value.append(val1)   
     pval2=int(prev.split()[3]) 
     cval2=int(line.split()[3]) 
     val2=cval2-pval2 
     value.append(val2)   
     pval3=int(prev.split()[4]) 
     cval3=int(line.split()[4]) 
     val3=cval3-pval3   
     value.append(val3) 
     pval4=int(prev.split()[5]) 
     cval4=int(line.split()[5]) 
     val4=cval4-pval4 
     value.append(val4)   
    prev=line 

ich diesen Code geschrieben haben, funktioniert es. Wie kann ich das verbessern?

Verwandte Themen