Forum >> Principianti >> Estrazione dati da file.txt

Pagina: 1

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
scusa ma non ho capito una cosa.. il problema è solo eliminare \n ?
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
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
Anteponi \ alle parentesi quadre aperte per risolvere il problema.
Dipende dalla codifica .... io cmq ho risolto tramite pastebin allego un link al codice

Ciao

Salvatore
ciao trescon, se il problema è togliere il "\n" puoi usare la funzione replace



lista_di_trescon.replace("\n","")


Pagina: 1



Esegui il login per scrivere una risposta.