Forum >> Programmazione Python >> Files e Directory >> Estrarre dati da un file.txt non sotto forma di matrice

Pagina: 1

Ciao a tutti!
E' la prima volta che scrivo in questo forum e spero di essere nella sezione giusta...
Sto avendo difficoltà con un programma che devo realizzare:
in sostanza da un file di input scritto in questo modo
"
O2Init = 0.2
N2Init = 0.8
fuelSpecies = "NC12H26"
fuelMassFractions = 1
tValues
(
600
650
700
);
pValues
(
30e5
70e5
110e5
);
"
dovrei fare un programma in python in cui i dati siano inseriti nelle variabili corrette, per esempio tValues diventa un array di float ([600., 650., 700.,]), fuelSpecies contiene la stinga "NC12H26" e cosi via per tutte le variabili.
Ho già provato con i comandi np.loadtxt e np.genfromtxt, ma mi sembra di capire che funzionino solo per flat files.

Qualcuno saprebbe darmi una mano?
Grazie mille!
Ho risolto in una maniera non molto ortodossa con questo codice (le variabili sono in ordine differente rispetto a quello che ho scritto nel messaggio precedente).
Mi piacerebbe pero riuscire ad avere una scrittura piu compatta e comoda da leggere

dati = open ('datiinput.txt','r')
datinput = dati.readlines()
lista=[]
for x in datinput :
b = [x.strip()]
lista = lista + b
dati.close()

Pressure=[]
for i in lista[2:] :
if i == 'tValues' :
index = len(Pressure)+2
break
else :
b =
Pressure = Pressure + b
Pressure = Pressure[0:-2]
for i in range(0,len(Pressure)):
Pressure = float(Pressure)

Temperature = []
for i in lista[index+2:] :
if i == 'equivValues' :
index = index+2+len(Temperature)
break
else :
b =
Temperature = Temperature + b
Temperature = Temperature[0:-2]
for i in range(0,len(Temperature)):
Temperature = float(Temperature)

EquivalenceRatio = []
for i in lista[index+2:] :
if i == 'fuelSpecies' :
index = index+2+len(EquivalenceRatio)
break
else :
b =
EquivalenceRatio = EquivalenceRatio + b
EquivalenceRatio = EquivalenceRatio[0:-2]
for i in range(0,len(EquivalenceRatio)):
EquivalenceRatio = float(EquivalenceRatio)

for i in lista[index+1:index+2] :
fuel = i



Pagina: 1



Esegui il login per scrivere una risposta.