Unire due file

di il
40 risposte

Unire due file

Salve ragazzi ,ho due file desidererei unirli per in modo da averne uno solo :
il primo :
Codice:

import datetime
import csv
import sys

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)
    #print(header)
    dati = [(linea[0],linea[2],linea[5]) for linea in lettore if linea[0]=="ARPACAMPANIA_NA01" and linea[2]=="RadSG"]
    dati2 = [(linea[2]) for linea in dati]
    #print (dati2)
    somma=0
    for val in dati2:
     val=val.replace(",",".")
     val2=float(val)
     if val2>0:
      somma=somma+val2
      #print (val2)
    print (somma)
    JOULE=somma*3.6
    print(JOULE)
    #print (dati2)
    #print (val)
    #print(n)
    file=open("./OSSERVATORIO_RadSG.csv","a") 
    giorno=datetime.datetime.strptime(stringa, "20%y%m%d")
    file.writelines('%s,%s\n'%(stringa,JOULE))
    file.close()
 delta =delta+datetime.timedelta(days=1)
 print (stringa)

ho questo risultato :
20191101,6041.124
il secondo file :
Codice:

import datetime
import csv
import sys

gg=input('giorno ')
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)
    #print(header)
    dati = [(linea[0],linea[2],linea[5]) for linea in lettore if linea[0]=="ARPACAMPANIA_NA01" and linea[2]=="Temperatura aria"]
    dati2 = [(linea[2]) for linea in dati]
    print (dati2)
    somma=0
    n=0
    for val in dati2:
     val=val.replace(",",".")
     val2=float(val)
     somma=somma+val2
     n=n+1
     #print (val2)
    print (somma)
    Media=somma/n
    print(Media)
    #print (dati2)
    #print (val)
    #print(n)
    file=open("./Osservatorio_Temperatura.csv","a") 
    giorno=datetime.datetime.strptime(stringa, "20%y%m%d")
    file.writelines('%s,%s\n'%(giorno,Media))
    file.close()
 delta =delta+datetime.timedelta(days=1)
 print (stringa)
risultato :
2019-11-01 00:00:00,15.49916666666666

avere un solo file ,unendo i due codici in modo da ottenere
20191101,6041.124,15.49916666666666
Grazie

40 Risposte

  • Re: Unire due file

    Non devi unire i due file (che sono due programmi) ma inserire nel primo quello che manca e che è nel secondo ...

    A prima vista nel secondo c'è

    Media=somma/n
    print(Media)

    che va inserito nel primo.

    E poi va modificata la print nel file per scrivere anche la media ...

    Non è una cosa complicatissima ... non hai le basi della programmazione?
  • Re: Unire due file

    Grazie e buona domenica ,oregon , hai centrato il problema .... non ho le basi di programmazione , sono due settimane che cerco di farlo , tentativi e tentativi .... ho trovato il file e studiando l'ho adattato ... non riesco ad unire i codice ,se puoi essere cosi gentile ....ti sarei grata
  • Re: Unire due file

    Se puo' essere utile allego i due file pyton e i file che ldevo far elaborare
    https://drive.google.com/drive/folders/1c62hfQYxNGVPTPaxRPIh6buvLSklXyDw?usp=sharing
    all'esecuzione dei file pyton :
    giorni : (inserisco) 1
    mese : (inserisco) 11
    anno :(inserisco) 19

    grazie
  • Re: Unire due file

    Perché non ci provi tu con quello che ti ho detto? Sono due linee da trasferire e la print da aggiustare. Serve solo un attimo anche se non programmi.
  • Re: Unire due file

    oregon ha scritto:


    Non devi unire i due file (che sono due programmi) ma inserire nel primo quello che manca e che è nel secondo ...

    A prima vista nel secondo c'è

    Media=somma/n
    print(Media)

    che va inserito nel primo.

    E poi va modificata la print nel file per scrivere anche la media ...

    Non è una cosa complicatissima ... non hai le basi della programmazione?
    ciao oregon scusa una delucidazione nel secondo file
    dati = [(linea[0],linea[2],linea[5]) for linea in lettore if linea[0]=="ARPACAMPANIA_NA01" and linea[2]=="Temperatura aria"
    abbiamo in ARPACAMPANIA_NA01 la lettura di "Temperatura aria"
    se nel primo file inserisco solo :
    Media=somma/n
    print(Media)
    E poi modifico la print nel file per scrivere anche la media ...
    quando ha letto la "Temperatura aria"
    scusa la mia totale ignoranza

    grazie
  • Re: Unire due file

    Non riesco a capire cosa hai scritto....
  • Re: Unire due file

    Buongiorno oregon ,hai ragione ,non sono stato felice nell'esprimermi ,sono alle primissime armi ...
    nel primo file il programma analizza per esempio il file "dati_centraline_20191101_meteo.csv"
    in esso trova i valori di RadSG ,
    legge tutti valori ,li somma ,la somma la moltiplica x 3,6 ed il risultato nel file OSSERVATORIO_RadSG.csv

    se nel primo file inserisco solo (non so dove )
    Media=somma/n
    print(Media)
    E poi modifico la print nel file per scrivere anche la media ...
    non dovrei aggiungere anche che dal file "dati_centraline_20191101_meteo.csv"
    deve leggere i valori "Temperatura aria" e di essi
    Media=somma/n
    print(Media)
    E poi modifico la print nel file per scrivere anche la media ...
  • Re: Unire due file

    Sostanzialmente, guardando i due codici, dovresti scrivere
    
        somma=0
        n=0
        for val in dati2:
         val=val.replace(",",".")
         val2=float(val)
         somma=somma+val2
         n=n+1
         if val2>0:
          somma=somma+val2
          #print (val2)
        print (somma)
        JOULE=somma*3.6
        print(JOULE)
        Media=somma/n
        print(Media)
    
    e
    
    file.writelines('%s, %s, %s\n'%(stringa,JOULE, Media))
    
    ma sono così confusi che bisogna fare delle prove, che puoi fare solo tu.
  • Re: Unire due file

    Ciao oregon ,grazie per la tua disponibilita' ... seguendo i tuoi suggerimenti :
    
    
    
    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)
        #print(header)
        dati = [(linea[0],linea[2],linea[5]) for linea in lettore if linea[0]=="ARPACAMPANIA_NA01" and linea[2]=="RadSG"]
        dati2 = [(linea[2]) for linea in dati]
        #print (dati2)
    
    somma=0
        n=0
        for val in dati2:
         val=val.replace(",",".")
         val2=float(val)
         somma=somma+val2
         n=n+1
         if val2>0:
          somma=somma+val2
          #print (val2)
        print (somma)
        JOULE=somma*3.6
        print(JOULE)
        Media=somma/n
        print(Media)
        #print (dati2)
        #print (val)
        #print(n)
        file=open("./OSSERVATORIO_RadSG.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)
    
    e' questo che devo fare ?
    comunque non va'
  • Re: Unire due file

    Apporta queste modifiche

    Dove c'è
    somma=0

    aggiungi nella linea dopo

    somma2=0

    e prima della linea

    n=n+1

    cambia la linea che c'è in

    somma2=somma2+val2

    e poi modifica la linea della Media in

    Media=somma2/n

    Se qualcosa non va, indica esattamente cosa.
  • Re: Unire due file

    Oregon ho fatto le modifiche.. suggeritemi
    
    
    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)
        #print(header)
        dati = [(linea[0],linea[2],linea[5]) for linea in lettore if linea[0]=="ARPACAMPANIA_NA01" and linea[2]=="RadSG"]
        dati2 = [(linea[2]) for linea in dati]
        #print (dati2)
    
    somma=0
    somma2=0
        n=0
        for val in dati2:
         val=val.replace(",",".")
         val2=float(val)
        somma2=somma2+val2 
         n=n+1
         if val2>0:
          somma=somma+val2
          #print (val2)
        print (somma)
        JOULE=somma*3.6
        print(JOULE)
        Media=somma2/n
        print(Media)
        #print (dati2)
        #print (val)
        #print(n)
        file=open("./OSSERVATORIO_RadSG.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)
    
    fa come prima
    non parte proprio il programma per essere piu preciso ,clicco sul file che ho chiamato temporaneo per un microsecondo cerca di partire e si chiude
  • Re: Unire due file

    Posso garantirti che i due programma separatamente ... puoi provarli se vuoi sopra c'e' il link ,funzionano perfettamente !!
  • Re: Unire due file

    
    
    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)
        #print(header)
        dati = [(linea[0],linea[2],linea[5]) for linea in lettore if linea[0]=="ARPACAMPANIA_NA01" and linea[2]=="RadSG"]
        dati2 = [(linea[2]) for linea in dati]
        #print (dati2)
        somma=0
        for val in dati2:
         val=val.replace(",",".")
         val2=float(val)
         if val2>0:
          somma=somma+val2
          #print (val2)
        print (somma)
        JOULE=somma*3.6
        print(JOULE)
        #print (dati2)
        #print (val)
        #print(n)
        file=open("./OSSERVATORIO_RadSG.csv","a") 
        giorno=datetime.datetime.strptime(stringa, "20%y%m%d")
        file.writelines('%s,%s\n'%(stringa,JOULE))
        file.close()
     delta =delta+datetime.timedelta(days=1)
     print (stringa)
     
    -----------------------------------------------------------------------------
    sopra primo programma
    sotto secondo programma
    ---------------------------------------------------------------------------
    import datetime
    import csv
    import sys
    
    gg=input('giorno ')
    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)
        #print(header)
        dati = [(linea[0],linea[2],linea[5]) for linea in lettore if linea[0]=="ARPACAMPANIA_NA01" and linea[2]=="Temperatura aria"]
        dati2 = [(linea[2]) for linea in dati]
        print (dati2)
        somma=0
        n=0
        for val in dati2:
         val=val.replace(",",".")
         val2=float(val)
         somma=somma+val2
         n=n+1
         #print (val2)
        print (somma)
        Media=somma/n
        print(Media)
        #print (dati2)
        #print (val)
        #print(n)
        file=open("./Osservatorio_Temperatura.csv","a") 
        giorno=datetime.datetime.strptime(stringa, "20%y%m%d")
        file.writelines('%s,%s\n'%(giorno,Media))
        file.close()
     delta =delta+datetime.timedelta(days=1)
     print (stringa)
    import datetime
    import csv
    import sys
    
  • Re: Unire due file

    Il link è sbagliato ...
Devi accedere o registrarti per scrivere nel forum
40 risposte