Vai allo strumento
ViewCSV
Nessun caricamento del file

Comprimere un file CSV

Trascina qui un file CSV, .gz o .zip
Operazione
I byte del file vengono compressi così come sono, quindi il ripristino restituisce esattamente lo stesso file, compresi codifica, BOM e fine riga.
Apri un file da comprimere o ripristinare.

Apri un CSV, scegli Gzip o ZIP e il file compresso viene scaricato appena è pronto: orders.csv diventa orders.csv.gz oppure orders.zip. Per l’operazione inversa apri un file .gz o .zip e ripristina i file che contiene. I byte non vengono analizzati né modificati, quindi codifica, delimitatore, virgolette, fine riga ed eventuale BOM tornano esattamente com’erano. La compressione avviene nel browser e il file non viene mai caricato.

Come comprimere o ripristinare un CSV

  1. Apri o trascina un file. Con un file che termina in .gz o .zip lo strumento passa al ripristino; tutti gli altri vengono compressi.
  2. Scegli Gzip o ZIP e un livello di compressione da 1 a 9. Il valore predefinito, 6, è il consueto compromesso tra dimensione e tempo.
  3. Avvia l’operazione. Il risultato viene scaricato e lo strumento mostra la dimensione prima e dopo e il rapporto tra le due.

Gzip o ZIP?

Gzip (.csv.gz)Un unico file compresso, definito nella RFC 1952. Strumenti da riga di comando, data warehouse e molte pipeline di importazione leggono .csv.gz direttamente. Al suo interno viene memorizzato il nome del file originale.
ZIP (.zip)Un archivio con una sola voce, che porta il nome del file originale. Si apre con un doppio clic su Windows e macOS, quindi è adatto agli allegati email e a chi non usa la riga di comando.
Livello di compressione1 richiede meno tempo, 9 si impegna di più per ottenere un file più piccolo. Su un CSV tipico la differenza tra 6 e 9 è minima, e su un file piccolo può non essercene affatto.
RipristinoUn file .gz restituisce l’unico file che contiene. Uno .zip restituisce tutti i file presenti; le cartelle vengono saltate e i percorsi delle cartelle vengono tolti dai nomi. Un solo file viene scaricato subito; se sono più di uno, compaiono in un elenco con un pulsante di download per ciascuno.

Comprimendo lo stesso file allo stesso livello si ottengono sempre gli stessi byte, perché le date scritte nell’intestazione Gzip e nelle voci ZIP sono fisse e non corrispondono all’ora corrente. Per questo il risultato si presta al calcolo di checksum o al versionamento.

Cosa resta identico

  • Il file viene trattato come una sequenza di byte, non come una tabella, quindi non viene ricodificato nulla: un export in Windows-1252 o Shift_JIS, il punto e virgola come delimitatore, i fine riga CRLF e un BOM UTF-8 vengono ripristinati senza modifiche. Zeri iniziali e codici lunghi restano intatti, perché nessun valore viene mai letto.
  • Gli a capo tra virgolette e le virgolette spaiate non hanno importanza per la compressione: anche un CSV malformato viene compresso e ripristinato così com’è. Per controllare il file in sé usa Convalida CSV.
  • Gzip memorizza il nome in Latin-1, come richiede la RFC 1952, quindi un nome di file in un altro alfabeto, per esempio cinese o cirillico, potrebbe non tornare intatto. Per questi nomi usa ZIP, oppure rinomina il file dopo il ripristino.
  • Se uno ZIP contiene due file con lo stesso nome in cartelle diverse, vengono ripristinati entrambi con quel nome. Rinominali mentre li scarichi.

Risoluzione dei problemi

  • Questo non è un file Gzip o ZIP. I primi byte del file non corrispondono alla firma Gzip o ZIP: potrebbe essere un normale CSV con un nome .gz, oppure un altro tipo di archivio come 7z o RAR. Per comprimerlo, passa a Gzip o ZIP.
  • I dati Gzip sono danneggiati o incompleti. Il checksum o la lunghezza memorizzati in fondo al file non corrispondono, il che di solito significa che il download si è interrotto. Scarica di nuovo il file.
  • I dati ZIP sono danneggiati o usano un metodo non supportato. Si possono ripristinare solo voci memorizzate senza compressione o compresse con Deflate; metodi come Deflate64, BZIP2 o LZMA non sono supportati. Non lo sono nemmeno gli ZIP protetti da password: estraili con un programma di archiviazione che chieda la password.
  • Il file compresso è appena più piccolo. Un CSV con molti valori diversi, come ID casuali o hash, si comprime meno di dati ripetitivi, e i file molto piccoli guadagnano poco perché il formato aggiunge un’intestazione fissa. Convertire in Parquet può ridurre ancora di più i dati tipizzati organizzati per colonne.

File grandi e privacy

Qui non c’è il limite dei 25 MB, perché il file non viene mai caricato come tabella: viene letto a blocchi da 4 MB e compresso o ripristinato in streaming. Il ripristino si ferma con un errore quando i dati ripristinati supererebbero in totale i 4 GB, per proteggere la scheda dalle cosiddette «zip bomb», che si espandono fino a dimensioni enormi.

L’elaborazione gira in un worker in background in questa scheda del browser e Annulla la interrompe. Non viene caricato nulla. Per rendere più maneggevole un file grande spezzandolo in parti, usa invece Dividi CSV, che può anche scaricare le parti in un unico ZIP.

Esempio

Un export di 12 ordini con punto e virgola, virgola decimale e SKU con zeri iniziali (qui le prime righe), per un totale di 374 byte. Gzip produce gli stessi 185 byte ai livelli 1, 6 e 9, perché il file è molto piccolo; ZIP aggiunge un’intestazione di archivio più grande. Ripristinando l’uno o l’altro si riottengono tutti i 374 byte senza modifiche.

CSV
order_id;region;sku;qty;amount
SO-1001;North;00123;1;19,90
SO-1002;South;00124;2;38,90
SO-1003;East;00125;3;57,90
SO-1004;West;00123;4;76,90
…
Risultato
orders-march.csv.gz   185 bytes (49.5 %), restores to orders-march.csv
orders-march.zip      296 bytes (79.1 %), one entry: orders-march.csv
Restored orders-march.csv   374 bytes, identical to the original

Domande frequenti

Posso comprimere più file CSV in un unico ZIP?

Non in questa pagina, che comprime un file alla volta. Dividi CSV scarica tutte le sue parti in un unico ZIP, e il ripristino di uno ZIP qui restituisce tutti i file che contiene.

Un file .csv.gz è ancora un CSV?

È un CSV compresso con Gzip. Gli strumenti che supportano Gzip, come gunzip, i comandi di importazione della maggior parte dei database e le librerie per l’analisi dei dati, lo leggono direttamente; gli altri richiedono prima il ripristino in .csv, che puoi fare in questa pagina.

La compressione modifica i miei dati?

No. La compressione Gzip e ZIP è senza perdita e questo strumento non analizza mai il CSV, quindi il file ripristinato è la stessa identica sequenza di byte dell’originale.

Standard e riferimenti