Przejdź do narzędzia
ViewCSV
Plik nie jest nigdzie wysyłany

Skompresuj plik CSV do gzip lub ZIP

Przeciągnij tutaj plik CSV, .gz lub .zip
Działanie
Bajty pliku są kompresowane bez zmian, więc po rozpakowaniu dostajesz dokładnie ten sam plik – łącznie z kodowaniem, znacznikiem BOM i znakami końca wiersza.
Otwórz plik, który chcesz skompresować lub rozpakować.

Otwórz plik CSV i wybierz gzip lub ZIP, a skompresowany plik zostanie pobrany, gdy tylko będzie gotowy: z orders.csv powstaje orders.csv.gz lub orders.zip. W drugą stronę: otwórz plik .gz lub .zip, a narzędzie odtworzy pliki, które się w nim znajdują. Bajty nie są analizowane ani zmieniane, więc kodowanie, ogranicznik, cudzysłowy, znaki końca wiersza i ewentualny znacznik BOM wracają dokładnie w tej samej postaci. Kompresja odbywa się w Twojej przeglądarce; plik nigdy nie jest wysyłany na serwer.

Jak skompresować lub rozpakować plik CSV

  1. Otwórz lub upuść plik. Plik z rozszerzeniem .gz lub .zip przełącza narzędzie w tryb rozpakowywania; każdy inny jest kompresowany.
  2. Wybierz gzip lub ZIP oraz poziom kompresji od 1 do 9. Domyślne 6 to typowy kompromis między rozmiarem a czasem.
  3. Uruchom zadanie. Wynik zostanie pobrany, a narzędzie pokaże rozmiar przed i po kompresji oraz stosunek między nimi.

Gzip czy ZIP?

Gzip (.csv.gz)Jeden skompresowany plik, zdefiniowany w RFC 1952. Narzędzia wiersza poleceń, hurtownie danych i wiele procesów importu odczytują .csv.gz bezpośrednio. Oryginalna nazwa pliku jest zapisana w środku.
ZIP (.zip)Archiwum z jednym wpisem pod oryginalną nazwą pliku. Otwiera się dwukrotnym kliknięciem w systemach Windows i macOS, więc dobrze nadaje się na załącznik e-mail i dla osób, które nie korzystają z wiersza poleceń.
Poziom kompresji1 zajmuje najmniej czasu, a 9 najbardziej się stara, by plik był mniejszy. W typowym pliku CSV różnica między 6 a 9 jest niewielka, a w małym pliku może jej nie być wcale.
RozpakowaniePlik .gz zwraca jeden plik, który zawiera. Plik .zip zwraca wszystkie zawarte pliki; foldery są pomijane, a ścieżki folderów usuwane z nazw. Pojedynczy plik jest pobierany od razu, a kilka plików pojawia się na liście, każdy z własnym przyciskiem pobierania.

Kompresja tego samego pliku na tym samym poziomie za każdym razem daje identyczne bajty, ponieważ znaczniki czasu zapisywane w nagłówku gzip i we wpisach ZIP są stałe, a nie odpowiadają bieżącej godzinie. Dzięki temu wynik można bezpiecznie weryfikować sumą kontrolną lub przechowywać w systemie kontroli wersji.

Co jest zachowywane dokładnie

  • Plik jest traktowany jako bajty, a nie jako tabela, więc nic nie jest ponownie kodowane: eksport w Windows-1250, Windows-1252 czy Shift_JIS, ogranicznik średnik, znaki końca wiersza CRLF i znacznik BOM UTF-8 wracają po rozpakowaniu bez zmian. Zera wiodące i długie identyfikatory pozostają nietknięte, bo żadna wartość nie jest odczytywana.
  • Podziały wiersza w cudzysłowie i zabłąkane cudzysłowy nie mają znaczenia dla kompresji – nawet uszkodzony CSV zostanie skompresowany i rozpakowany w takiej postaci, w jakiej jest. Sam plik sprawdzisz narzędziem Walidacja CSV.
  • Gzip zapisuje nazwę w kodowaniu Latin-1, jak wymaga RFC 1952, więc nazwa pliku w innym piśmie, np. chińskim lub cyrylicy – a także z polskimi literami spoza Latin-1, takimi jak ą czy ł – może nie wrócić w nienaruszonej postaci. Dla takich nazw użyj ZIP albo zmień nazwę pliku po rozpakowaniu.
  • Gdy ZIP zawiera dwa pliki o tej samej nazwie w różnych folderach, oba są rozpakowywane pod tą nazwą. Zmień ich nazwy podczas pobierania.

Błędy przy rozpakowywaniu i słaba kompresja

  • To nie jest plik gzip ani ZIP. Pierwsze bajty pliku nie są sygnaturą gzip ani ZIP; może to być zwykły CSV z nazwą kończącą się na .gz albo archiwum innego typu, np. 7z lub RAR. Przełącz na gzip lub ZIP, aby zamiast tego go skompresować.
  • Dane gzip są uszkodzone lub niekompletne. Suma kontrolna lub długość zapisana na końcu pliku się nie zgadza, co zwykle oznacza przerwane pobieranie. Pobierz plik ponownie.
  • Dane ZIP są uszkodzone lub używają nieobsługiwanej metody. Rozpakować można tylko wpisy zapisane bez kompresji (stored) i metodą Deflate; metody takie jak Deflate64, BZIP2 czy LZMA nie są obsługiwane. Nie są też obsługiwane pliki ZIP chronione hasłem – rozpakuj je programem do archiwów, który zapyta o hasło.
  • Skompresowany plik jest niewiele mniejszy. CSV z wieloma różnymi wartościami, np. losowymi identyfikatorami lub skrótami (hashami), kompresuje się gorzej niż dane powtarzalne, a bardzo małe pliki niewiele zyskują, bo format dodaje stały nagłówek. Konwersja do formatu Parquet może bardziej zmniejszyć dane typowane, kolumnowe.

Duże pliki i prywatność

Nie obowiązuje tu limit 25 MB, bo plik nigdy nie jest wczytywany jako tabela: jest odczytywany we fragmentach po 4 MB i kompresowany lub rozpakowywany strumieniowo. Rozpakowywanie zatrzymuje się z błędem, gdy łączny rozmiar rozpakowanych danych przekroczyłby 4 GB – chroni to kartę przed „bombami ZIP”, które rozrastają się do ogromnych rozmiarów.

Praca odbywa się w tle w tej karcie, a Anuluj ją przerywa. Nic nie jest wysyłane na serwer. Aby zamiast tego zmniejszyć duży plik, dzieląc go na części, użyj narzędzia Dzielenie plików CSV, które może też pobrać części jako jeden plik ZIP.

Przykład: eksport 12 zamówień na różnych poziomach kompresji

Eksport 12 zamówień ze średnikami, przecinkami dziesiętnymi i kodami SKU z zerami wiodącymi (pokazano pierwsze wiersze), łącznie 374 bajty. Gzip daje te same 185 bajtów na poziomach 1, 6 i 9, bo plik jest bardzo mały; ZIP dodaje większy nagłówek archiwum. Rozpakowanie każdego z plików zwraca wszystkie 374 bajty bez zmian.

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
…
Wynik
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

Pytania i odpowiedzi

Czy mogę skompresować kilka plików CSV do jednego archiwum ZIP?

Nie na tej stronie – kompresuje ona jeden plik naraz. Narzędzie Dzielenie plików CSV pobiera wszystkie części jako jeden ZIP, a rozpakowanie pliku ZIP tutaj zwraca wszystkie zawarte w nim pliki.

Czy plik .csv.gz to nadal CSV?

To plik CSV skompresowany metodą gzip. Narzędzia obsługujące gzip, takie jak gunzip, polecenia importu większości baz danych i biblioteki do analizy danych, odczytują go bezpośrednio; inne wymagają najpierw rozpakowania do .csv, co robi ta strona.

Czy kompresja zmienia moje dane?

Nie. Kompresja gzip i ZIP jest bezstratna, a to narzędzie nigdy nie analizuje zawartości CSV, więc rozpakowany plik to ta sama sekwencja bajtów co oryginał.

Standardy i źródła