Κατ' αρχάς, είμαι αρχάριος στον προγραμματισμό γενικά, οπότε αν πάω μέσω Λαμίας δείξε κατανόηση.
Με αυτόν τον τρόπο (με Regular expressions)
import re
numbers = []
with open('team2.txt') as f:
lines = f.readlines()
for line in lines:
data = re.search(r'= (.){1,15} /', line).group()
number = data[2:-2]
numbers.append(float(number))
print(numbers)
σχεδόν δουλεύει...
Υπάρχει όμως πρόβλημα στην 6η σειρά, επειδή έχει άλλη μορφοποίηση.
Αν αντί για:
MININ_1 = 4.37927246E+01 / CHI2_E1 = 1.15758371E+01 / Error Chi2
ήταν:
MININ_1 = 4.37927246E+01 /
CHI2_E1 = 1.15758371E+01 / Error Chi2
θα έπαιρνα και τα 2 νούμερα, αλλά δυστυχώς...
Ακόμα και έτσι όμως τα νούμερα που παίρνω είναι:
[81.6981506, 0.340000004, 63.5939445, 0.446972519, -610.887512, 43.7927246, 0.00846203603]
Είναι σωστά ή κουκουρούκου? (είμαι άσχετος από μαθηματικά)
Σίγουρα γίνεται καλύτερα με τα Regular expressions αλλά δεν τα ξέρω καλά.
Edit: Υπέθεσα ότι θέλεις float γιαυτό τα μετέτρεψα.
Αν θέλεις απλώς το String (π.χ. 8.16981506E+01) κάνε το numbers.append(float(number)) numbers.append(number)
Edit2: Ο μόνος τρόπος που σκέφτηκα για να πάρεις όλα τα νούμερα είναι να βάλεις και ένα try - except που να ψάχνει και το δεύτερο μέρος, αν υπάρχει.
import re
numbers = []
with open('team2.txt') as f:
lines = f.readlines()
for line in lines:
data = re.search(r'= (.){1,15} /', line).group()
number = data[2:-2]
numbers.append(float(number))
try:
part_2 = line[26:]
data = re.search(r'= (.){1,15} /', part_2).group()
number = data[2:-2]
numbers.append(float(number))
except AttributeError:
pass
print(numbers)
Αυτά...