Forum >> Principianti >> formattazione valori

Pagina: 1

Salve ragazzi nel codice
ho questo risultato :

in colonna "A" la stringa 20191101,6041.124,15.499

desiderei ottenere
in colonna "A" la data in formato 01/11/2019
in colonna "B" 6041.124 o meglio 6041
in colonna "C" 15.499 o meglio 15,499




come modificare il codice ?

grazie .




gg=input('INSERISCI GIORNO INIZIALE DA ESAMINARE ')
mm=input('mese ')
aa=input('anno (2 cifre) ')

start2=str(gg)+'/'+str(mm)+'/'+str(aa)
start1=str(start2)
print (start1)
start=datetime.datetime.strptime(start1, "%d/%m/%y")
finish=datetime.datetime.today()
delta=start
while delta<finish-datetime.timedelta(days=1):
 stringa=datetime.datetime.strftime(delta,"20%y%m%d")  
 with open("./dati_centraline_"+stringa+"_meteo.csv") as filecsv:
    lettore = csv.reader(filecsv,delimiter=",")
    header = next(lettore)

    dati = [(linea0,linea2,linea5)
    for linea in lettore if linea0=="ARPACAMPANIA NA01" and (linea2=="RadSG" or linea2=="Temperatura aria")]

    somma=0
    somma2=0
    n=0
    for val in dati:
     vv=float(val2.replace(",","."))
     if val1=="RadSG" and vv>0:
      somma=somma+vv
     if val1=="Temperatura aria":
      somma2=somma2+vv
      n=n+1

    JOULE=somma*3.6
    Media=somma2/n

    file=open("./Temperatura+RaSG.csv","a") 
    giorno=datetime.datetime.strptime(stringa, "20%y%m%d")
    file.writelines('%s,%s,%s\n'%(stringa,JOULE,Media))
    file.close()
 delta =delta+datetime.timedelta(days=1)
 print (stringa)



Salve ragazzi nel codice
ho questo risultato :

in colonna "A" la stringa 20191101,6041.124,15.499

desiderei ottenere
in colonna "A" la data in formato 01/11/2019
in colonna "B" 6041.124 o meglio 6041
in colonna "C" 15.499 o meglio 15,499
1. Per dividere i dati puoi usare str.split(",") ed ottenere una lista con i valori splittati;
2. Per la data guarda la libreria datetime, fa quello che chiedi;
3. Beh ma tratta i numeri come interi usando int() oppure esplicita l'output senza decimali;
4. Mah, ti direi di non farlo visto che il separatore è il . non la , ma se proprio vuoi fare una cosa brutta del genere, trasformalo in stringa e fai un str.replace().

Ora sai tutto quello che ti serve.

Cya

> trasformalo in stringa e fai un str.replace().


vabbè dai...


>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
>>> locale.str(15.499)
'15,4999'


> trasformalo in stringa e fai un str.replace().

vabbè dai...
Hai ragione, stupido io.

Cya

no beh, str.replace() è probabilmente quello che avrei fatto *io*... ma bisogna cercare di darsi un tono :-)
no beh, str.replace() è probabilmente quello che avrei fatto *io*... ma bisogna cercare di darsi un tono :-)
Darsi un tono, bella... :D


Pagina: 1



Esegui il login per scrivere una risposta.