Esercizio lettura e scrittura file

di il
2 risposte

Esercizio lettura e scrittura file

Ciao a tutti , potreste aiutarmi a capire perchè questo codice non funziona ?

import sys 
import os
out_dir_name=sys.argv[1] if sys.argv[1:] else 'out'
try:
    os.mkdir(out_dir_name)
    print('I file saranno scritti nella cartella' , out_dir_name)    
except FileExistsError:
    print('I file saranno scritti nella cartella' , out_dir_name , 'esistente')

for file_name in os.listdir():
    if file_name.endswith('.data'):
        out_file_name=os.path.join(out_dir_name,file_name+'out')
        print('Sto scrivendo sul file %s' %out_file_name,end=' ')
        out=open(out_file_name,'w')
        for line in open(file_name):
            d=[float(item) for item in line.split()]
            out.write('%.2f  %.2f  %.2f\n' %(min(d),max(d),sum(d)/len(d)))
        print('Fatto !!')  
        out.close()
Se eseguo questo codice in modalità interattiva viene creata la cartella di output 'out' , vengono stampati tutti i print ma nella cartella out non vengono creati i file che dovrebbero essere creati contenenti min , max e media.
Se invece eseguo questo codice sull'IDE Spyder 3.7 viene creata la cartella di output 'out' ma poi finisce li , non viene neanche eseguita la stampa di "Sto scrivendo sul file.....".

os.listdir() mi restituisce 2 file che terminano con ".data" quindi il corpo del ciclo if dovrebbe essere eseguito 2 volte
Qualche consiglio ?

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte