Ho un sacco di file CSV da elaborare ogni giorno. Hanno una forma costante con 19 virgole per apparire in ogni file. Nel file è presente una combinazione di stringhe, timestamp, numeri interi e cifre float. Il file termina sempre con CR-LF impostato.
Ogni file ha solo 1 riga di quel testo, che fornisce una serie di informazioni che vengono successivamente elaborate.
Il problema sembra che di tanto in tanto (una volta ogni 1000 file) il dispositivo responsabile della generazione di quel file crea il file INCOMPLETE. Mancano alcune informazioni.
Devo separare quei file da tutti i file validi prima di elaborarli ulteriormente.
Dopo aver trascorso un considerevole periodo di tempo a cercare di capire il modo più efficace per risolvere, sono giunto alla conclusione che, poiché il file è incompleto, mancano alcune virgole.
Quindi voglio contare la quantità di COMMAS che appaiono nel file CSV. Il file corretto dovrebbe avere 19 virgole, qualsiasi file problematico che ho scoperto nell'ultimo semestre sarebbe MENO di quello. Hanno anche CR-LF mancante alla fine della linea. Finiscono semplicemente con la virgola dopo un certo valore e basta.
Esempio di un buon file CSV:
STRING1,STRING2,2017-01-20 17:34:08,53.808536,-7.789231,19.5,3,0,STRING3,2017-01-20 17:34:19,2,0,7.9,2,0,1,0,0,0,0
Esempio di file CSV errato:
STRING1,STRING3,2017-01-12 10:11:09,53.779093,-7.494274,
La mia domanda è: come posso contare la quantità di COMMAS in un singolo file CSV e se questa quantità non corrisponde al numero definito per eseguire una determinata operazione (come spostare questo file errato nella cartella ERRORS, che potrei trattare in seguito). Se il file ha la quantità corretta di COMMAS, lascia che sia. Quindi, ho bisogno di un'altra parola per spostare i file CSV formattati in modo errato in una cartella ERRORI e lasciare i file CSV formattati correttamente come erano.
Cordiali saluti: i file CSV contengono sempre solo 1 riga di dati.
Ho sperimentato alcune soluzioni, che stanno cercando di trovare e contare le istanze di determinate stringhe in un file TXT, ma non mi sta portando da nessuna parte. Forse perché la mia stringa è solo un segno COMMA ... Non lo so.
Apprezzerei molto il tuo aiuto in merito.