So habe ich eine Textdatei, die eine Liste von Nummern enthält, die ich eine laufende Summe erstellen möchte. Ich brauche die erste Zahl die zweite Zahl zu addieren und dann die dritte Zahl in den neu geschaffenen zweiten Mehrwert zu schaffen und so weiter ...
So:
Altliste
0,1
0,25
0,35
0,2
0,3
Neue Liste
0,35
0,7
0,9 1,2
Ich habe Probleme beim Hinzufügen einer Nummer zu einer vorherigen Nummer und so weiter
Hier ist, was ich bisher
import itertools
from itertools import zip_longest
open('newfile.txt','w').writelines([ line for line in open("Test1.txt") if "WIDTH" in line])
open('newfile2.txt','w').writelines([ line for line in open("Test1.txt") if "DEPTH" in line])
with open('compiled.txt', 'w') as res, open("newfile.txt") as f1, open("newfile2.txt") as f2:
for line1, line2 in zip_longest(f1, f2, fillvalue=""):
res.write("{} : {}\n".format(line1.rstrip(), line2.rstrip()))
for line in open("compiled.txt"):
line = line.strip(', \n')
parts = line.split(":")
category = parts[0]
value = parts[1]
category2 = parts[2]
value2 = parts[3]
total = sum([int(num) for num in value])
print (total)
Doch es mir diesen Fehler gibt:
total = sum([int(num) for num in value])
ValueError: invalid literal for int() with base 10: ' '
Was mache ich falsch hier? Ich bin neu zu Python, so würde jede Hilfe sehr geschätzt werden.
Versuchen Sie, Wert zu drucken. Was gibt es dir? – Greg
Ich vermute, Sie wollen 'float (num) für num in value.split()'. –
Es wäre hilfreich, wenn Sie nur die Eingabedatei gepostet haben, sehe ich diese Aussage "wenn" WIDTH "in Zeile"; Es ist schwierig, dies ohne die Anwesenheit Ihrer Daten herauszufinden. – direprobs