Profilo di trescon

Nome trescon
Indirizzo email python.alby@gmail.com
AvatarAvatar utenti
Messaggi63
Firma forum
------
Alberto
  • Re: Estrazione dati da file.txt
    Forum >> Principianti
    Salve a tutti , io ho risolto cosi, per quello che riguarda l'estrazione dei dati e l'eliminazione del \n

    leggi_file = "Barcodes.txt"
    fo = open(leggi_file, "r")
    lettura = fo.read()
    lung = len(lettura)
    print (lung) # numero righe file
    
    pippo = lettura.split('\n')
    for punto in range (20): # valore messo per provare, da sostituite con lung (attualmente 20.000.000 di righe)
        print(pippopunto) # stampa il recor delle lista
        print (len(pippopunto)) # stampa la lunghezza , che è sempre la  stessa
       
    #for punto in range (20):
        a= pippopunto[:12] # stampa la prima colonna del codice
        b= pippopunto[14:35] # stampa la seconda parte del codice
        print(a,b)
        print ("===========================")
    Per andare va, per via dell'eleganza ..... mi astengo!!!! Accetto lezioni di stile !!
    Ora manca la seconda parte, abbinare ad ogni codice singolo, gli eventuali codici a barre multipli.
    Qui magari mi è una cosa po' piu' complicata ...... help !!
    Grazie

    Alberto

    P.S.: perchè mi cancella delle parentesi quadre quando lo posto ??? finche lo scrivo si vedono regolari




    --- Ultima modifica di trescon in data 2018-02-18 17:55:45 ---
    ------
    Alberto
  • Re: Estrazione dati da file.txt
    Forum >> Principianti
    Grazie per il tuo contributo, si ... direi di sì.
    Io ho un grande file che contiene dei codici nelle prima colonna (le due colonne hanno lunghezza fissa) che possono essere anche ripetitivi:

    Es:




    123423 8020347823456

    123423 8034545565457

    123323 4523874904264

    I Due codici sono separati da “;” il quale c’è anche alla fine della riga.


    Quindi posso avere codici uguali su più righe sulla prima colonna che corrispondono a codici a barre diversi nella seconda colonna.


    Il problema per me (secondo il mio grado di capacità) è togliere il New line , poi spero di essere in grado di gestire la lettura e l’accorpamento dei codici.

    Ho detto spero.... quindi ogni suggerimento è benvenuto.

    Spero di averti chiarito il cosa dovrei fare.

    Grazie ancora.

    Alberto


    --- Ultima modifica di trescon in data 2018-02-17 21:17:12 ---
    ------
    Alberto
  • Estrazione dati da file.txt
    Forum >> Principianti
    Buonasera a tutti , questa sera ho un problemino con l'estrazione dei dati da un file .txt
    Il file e' un file così strutturato :

    125786;5874963987892;

    io sono riuscito a suddividere i vari campi ma il problema me lo da il ";" alla fine e il "\n" che mi trovo nella stampa che faccio dell'estrazione.
    In pratica devo riuscire a dividere i campi e a gestire il caporiga.
    Sotto riporto quello che estraggo:

    '\n9000075 ', '8015213036717 ', '\n9000077 ', '8015213033648 '

    Il mio programmino è veramenta fatto da incapace ...... ma fino a qui arrivo..... lo allego...

    leggi_file = "barcodes.txt"
    fo = open(leggi_file, "r")
    lettura = fo.read()
    pippo = lettura.split(';')
    print(pippo)
    Qualche anima pia mi potrebbe dare dei suggerimenti.
    Non penso che interessi per il programma ma il file originale è nell'ordine 35/40 Mb.

    Grazie
    Alberto

    ------
    Alberto
  • Re: Passaggio tra un programma e l'altro
    Forum >> Principianti
    Quindi trattare il programma secondario come se fosse un classe di comando (es. tkinter) ?

    Grazie, ciao

    Alberto

    si.

    nota che nel programma main quando richiami la funzione devi indicarne anche la provenienza, altrimenti lui quella funzione la va a cercare invano nello script main e non in quello slave.

    si fa semplicemente facendo antemporre al metodo stampa() il modulo importato slave, che quindi diventa:

    slave.stampa()

    un altro aspetto molto interessante è che grazie alla funzione di cui sotto, python riesce a capire se il file .py eseguito, sta lavorando come main o come slave, impostando doppi comportamenti e utilizzi a seconda della modalità



    if __name__ == "__main__":
    	main()


    se entri qui sotto è tutto ben spiegato da Pymike, programmatore che ha creato un ottimo videocorso python su youtube

    https://www.programmareinpython.it/video-corso-python-intermedio/03-if-name-main/



    --- Ultima modifica di stix77 in data 2018-01-19 10:05:54 ---
    Buogiorno, provato e funziona; ora un'altro quesito.

    Se nel modulo importato io avessi una classe che definisce un'interfaccia grafica Tkinter , come faccio a richiamarla ?
    Ho provato ad adattare il metodo da te utilizzato in precedenza ma con la classe non mi funziona.
    Ho un sacco di confisione in testa ...... scusate

    Alberto
    ------
    Alberto
  • Re: Passaggio tra un programma e l'altro
    Forum >> Principianti
    importandolo.
    se crei un file slave.py e ci scrivi dentro

    def stampa():
    	print("ciao")




    e poi crei nella stessa cartella un file main.py e ci scrivi dentro


    import slave
    slave.stampa()
    se esegui quest'ultimo lo script va a richiamare la funzione stampa dall'altro file.







    ovviamente il mio è un esempio minimale, ma la filosofia è quella

    Dal tuo esempio comprendo che posso eseguire dei comandi presenti su un'altro file; quello che vorrei fare io e' che passo proprio il CONTROLLO ad un'altro programma, il quale esegue una serie di funzioni.
    In pratica il primo programma e' un menu che facendo delle selezioni lancia il programma che di fatto diventa il principale.

    Grazie a tutti
    ------
    Alberto
  • Re: Passaggio tra un programma e l'altro
    Forum >> Principianti
    Quindi trattare il programma secondario come se fosse un classe di comando (es. tkinter) ?

    Grazie, ciao

    Alberto
    ------
    Alberto
  • Passaggio tra un programma e l'altro
    Forum >> Principianti
    Buonasera a tutti, questa volta il mio "problema" riguarda la necessita di richiamare da un programma PRINCIPALE un programma "figlio" che fa una tal funzione, finita la quale deve ridare il controllo al programma PRINCIPALE.
    (Come posso fare a richiamare/avviare un altro programma Python e poi quando ho finito con questo , tornare al primo.)
    Spero essere stato chiaro.
    Grazie

    Alberto
    ------
    Alberto
  • Re: Estrapolazione dati da file csv
    Forum >> Programmazione Python >> Files e Directory
    Daniele aka Palmux said @ 2017-12-26 21:18:53:
    Alberto scusa, non ho capito molto di quello che chiedi, mi sono perso. Quindi facciamo un passo indietro e riprendiamo il tuo codice. Il quesito iniziale era quello di trovare Ravenna nel CSV, per sapere in che riga si trova.
    import csv
    
    file_csv = 'c:/Python_3_6/Progetti/Prove/dati1.txt'
    with open(file_csv,newline='') as csvfile:
        reader = csv.reader(csvfile,delimiter = ';')  
        for value, row in enumerate(reader, 1):
            if "Ravenna" in row:
                print("Trovato nella riga {} - {}".format(value, row))
    
    Trovato nella riga 3 - ['3', 'Caffè', 'Macchiato', 'Via S. Agostino', 'Ravenna', '24040', 'Ra']
    
    Come andiamo ora, ci siamo?

    Cya

    Per essere quello che volevo ... lo è.... solo che hai usato sintassi/istruzioni che proprio io non conosco.
    Hai voglia di spendere due righe per spiegarmi la logica dei comandio usati ?

    Grazie per l'esempio, se non riesci cercherò di capire da solo PERCHE' funziona.

    Ancora grazie

    Alberto
    ------
    Alberto
  • Re: Estrapolazione dati da file csv
    Forum >> Programmazione Python >> Files e Directory
    Daniele aka Palmux said @ 2017-12-22 12:43:53:
    Ciao Alberto, prima considerazione ho letto una cosa che un po' mi spaventa, neanche fosse IT di S.King:

    (campi separati da ";" o in alcuni casi seprati da ",")

    Spero per te che non devi controllare la presenza di ";" o ",". :O

    Comunque sia la soluzione al tuo quesito è piuttosto semplice, ti basta cercare l'occorrenza con un "in" per verificarne la presenza. Non so se hai notato che il tuo row è una lista, quindi sai già come estrarre solo le righe che ti interessano.

    Per il numero di riga puoi inserire un semplice contatore ed incrementarlo ad ogni passaggio, in modo da sapere esattamente in quale punti ti trovi.

    Fammi sapere se ti è tutto chiaro.
    Cya

    Ciao Daniele, io so come di estraggono le righe da una lista (forse anche no, visto il mio livello) però se io creo una lista con un ventina di dati all'interno e decido di suddividerli in gruppi di 5 dati , io riesco a identificare il gruppo (dei 5) nel quale è compreso il valore che cerco io; ricavo anche ho 4 gruppi(di 5 dati ciascuno).
    Leggendo però il file con la routine che ho indicato sopra, io non ho una lista di 28 elementi (come quella che ho ricreato io) ma 4 liste di 7 elementi.
    Se io provo a analizzare la lista contenuta nel row del file mi dice che ho 1 riga e non 4 ??
    Ci ho perso delle ore, e sono arrivato alla conclusione che essendo io un "brocco" non ho capito come funzionano le liste (almeno quelle che derivano da un file csv).
    Mi potresti dare delle dritte.
    Grazie




    --- Ultima modifica di trescon in data 2017-12-26 20:49:37 ---

    --- Ultima modifica di trescon in data 2017-12-26 20:50:29 ---

    --- Ultima modifica di trescon in data 2017-12-26 20:50:58 ---
    ------
    Alberto
  • Estrapolazione dati da file csv
    Forum >> Programmazione Python >> Files e Directory
    Buonasera, volevo sottoporre a voi un esempio di ignoranza .... il mio ... :)

    Diventando seri, io ho un file di tipo csv (campi separati da ";" o in alcuni casi seprati da ",") e devo effettuare delle ricerche all'interno i campi di questi file.
    Quello che non mi torna (che non capisco) è che se io metto un confronto a un tal campo (colonna) del file, e per coincidenza questo è vero , non capisco come risalire alla riga dove c'è il campo con la colonna vera.
    Mi spiego meglio , se io cerco nella colonna row4 la stringa "Ravenna" come faccio a risalire che la riga dove c'era la tal stringa era la numero.....
    Allego programmino , scopizzato qua e la, che fa il suo dovere di leggere il file e stamparmelo; non ho messo il confronto perchè quando vero non so come gestirlo.
    In pratica se il confronto è vero, a me serve sapere in qualle riga è vero e devo "prelevare" l'intera riga per gestirla altrove.

    import csv
    file_csv = 'c:/Python_3_6/Progetti/Prove/dati1.txt'
    with open(file_csv,newline='') as csvfile:
        reader = csv.reader(csvfile,delimiter = ';')
        
        for row in reader:
            print (len(row), row)
    Ringrazio anticiparamente tutti per il supporto che vorrete darmi.
    Grazie

    Alberto
    ------
    Alberto