Lettura dati e fitting curva, esercizio.

di il
1 risposte

Lettura dati e fitting curva, esercizio.

Buonasera a tutti.
In quanto novellino del coding e del Python ho un disperato e assoluto bisogno di una mano su un problema/esercizio che sto facendo.
Vi spiego la questione al meglio.

In pratica ho un file chiamato good_files.txt contentente dei path ognuno dei quali è separato da un 'a capo' (\n)
ognuno di questi path fa riferimento ad un corrispettivo file.txt contenuti in delle sub-directory.
Ne abbiamo 86143 di percorsi.

Qualche esempio di path
secondolotto_1/Station_1__11/Station_1__11_Summary/Chip_001/S_curve/Ch_7_offset_0_Chip_001.txt
secondolotto_1/Station_1__11/Station_1__11_Summary/Chip_003/S_curve/Ch_4_offset_0_Chip_003.txt
ecc ecc.

Questi file sono strutturati all'interno in maniera più o meno uguale cioè così:

1001.002124 204.474676 -1.875952
0.512467

196 0 0
199 0 0
201 2 0
203 58 58
206 949 949
210 1001 1001
215 1001 1001

Osserviamo grossolanamente che abbiamo due righe e tre colonne.

Quello che serve è eliminare le prime due righe e la terza colonna così da avere le prime due colonne che contentgono rispettivamente delle x e delle y di un grafico.
Una volta acquisiti i dati che ci servono, questi verranno usati per fare il fit della curva.

La mia questione semplicemente è, come faccio a farlo?
Come ho detto sono ancora novellino e ci sto sbattendo la testa da un po' troppo, mi serve qualche hint.

Questo è quel tanto che ho scritto fin'ora

def ReadFromFile (fileName):
	sourceFile= open (fileName, 'r')
	text=[]
	for adress in sourceFile.readlines ():
		if '\n' in adress: text.append (adress [:-1])
		else: text.append (adress)
	return text
	sourceFile.close()

def WriteToFile (text):
	resultFile = open ('result.txt','w')
	for data in text:
		resultFile.write (data + '\n')
	resultFile.close()

adresses = ReadFromFile ('claro_good_files.txt')
for adress in adresses:
	text = ReadFromFile (adress)
	WriteToFile(text)

1 Risposte

  • Re: Lettura dati e fitting curva, esercizio.

    Ciao rdlf,
    for e, n in enumerate(open("spider.txt","r").readlines()):
        if e > 2:
        	print(n.split(" ")[0], n.split(" ")[1])
    			# oppure per avere una lista
        	print(n.split(" ")[:2])
    credo che questo ti dovrebbe essere di aiuto. ciao!
Devi accedere o registrarti per scrivere nel forum
1 risposte