Forum
>>
Programmazione Python
>>
Files e Directory
>>
Estrarre dati da un file.txt non sotto forma di matrice
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da como |
2017-05-04 15:14:00 - Estrarre dati da un file.txt non sotto forma di matrice
|
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! |
|
Scritto da como |
2017-05-05 11:24:57 - Re: Estrarre dati da un file.txt non sotto forma di matrice
|
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.