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 ?