Konwerter plików z separatorami

Europejskie eksporty przychodzą ze średnikami (bo przecinek pełni rolę separatora dziesiętnego), starsze hurtownie danych wysyłają tabulatory, logi Unix wolą kreski pionowe, a cała reszta wysyła CSV. Wklejenie niewłaściwego formatu do niewłaściwego narzędzia potrafi zepsuć zadania importu na ciekawe sposoby. Ten konwerter bezpiecznie przełącza się między separatorami i odczytuje pola w cudzysłowach jako jedną całość, dzięki czemu separator źródłowy w środku pola nie zostanie naruszony przy zmianie.

Jak konwertować między separatorami

  1. 1

    Wklej tekst

    Wklej tekst CSV, TSV, SSV lub PSV do edytora. Konwerter działa na wklejonym tekście, a nie na przesłanych plikach.

  2. 2

    Wybierz separator źródłowy i docelowy

    Wybierz przecinek, tabulator, średnik, kreskę pionową lub znak niestandardowy dla obu stron. Domyślnym źródłem jest przecinek, a domyślnym celem tabulator.

  3. 3

    Wykonaj konwersję

    Uruchom konwersję; wynik pojawi się poniżej z separatorem docelowym.

  4. 4

    Skopiuj wynik

    Skopiuj przekonwertowany tekst i wklej go do arkusza kalkulacyjnego, bazy danych lub skryptu.

Cztery separatory, które napotkasz

Format Separator Gdzie się pojawia
CSV przecinek Domyślny dla arkuszy kalkulacyjnych w USA i większości eksportów z sieci
TSV tabulator Naukowe zbiory danych, wyciągi z hurtowni, wklejanie z Google Sheets
SSV średnik Europejski Excel (gdzie przecinek jest dziesiętny), wyjścia z SAP
PSV kreska pionowa Potoki logów Unix, kanały danych finansowych, zrzuty ze starszych mainframe’ów

Jak traktowane są cudzysłowy

RFC 4180 definiuje powszechne reguły cudzysłowów w CSV, których używa niemal każde narzędzie:

  1. Pola zawierające separator, znak nowego wiersza lub znak cudzysłowu muszą być ujęte w cudzysłowy podwójne.
  2. Wewnątrz pola w cudzysłowach dosłowny cudzysłów podwójny poddaje się ucieczce przez jego podwojenie: "Ona powiedziała ""cześć""".
  3. Spacje na początku i na końcu pól bez cudzysłowów są zachowywane.

Ten konwerter odczytuje pole w cudzysłowach jako jedną całość, więc separator źródłowy w jego środku nie dzieli wiersza. Dane wyjściowe łączą pola separatorem docelowym bez dodawania nowych cudzysłowów; pole zawierające separator docelowy utworzy dodatkowe kolumny. Sprawdź i zacytuj takie pola przed konwersją.

Ograniczenie, które warto znać: każdy wiersz jest konwertowany osobno, więc pole w cudzysłowach zajmujące kilka linii zostanie podzielone na kilka wierszy.

Częste pułapki

  • Przecinki w europejskich liczbach dziesiętnych. Pole ceny „1,50“ w danych w euro rozdzielonych średnikami zmieni się w „1“ i „50“, jeśli przekonwertujesz je na format rozdzielany przecinkami bez wcześniejszej zamiany znaku dziesiętnego.
  • CRLF a LF. Dane wyjściowe zawsze używają końców wiersza LF. Jeśli system docelowy wymaga CRLF (Excel w systemie Windows), zamień końce wiersza po tym kroku.
  • BOM w UTF-8. Aby poprawnie otworzyć pliki CSV w UTF-8, Excel potrzebuje znacznika kolejności bajtów (BOM). To narzędzie nie dodaje ani nie usuwa BOM; w razie potrzeby zajmij się nim w edytorze.
  • Pusta ostatnia kolumna. Plik kończący się separatorem ma pustą ostatnią kolumnę. Jedne parsery ją usuwają, inne zachowują; w każdym przypadku warto to sprawdzić.

Wskazówki

  • Do danych, które mogą zawierać przecinki, używaj TSV; tabulatory w rzeczywistej treści są rzadkie.
  • W razie wątpliwości zostaw źródło w cudzysłowach: pole zacytowane konwertuje się czysto, nawet jeśli zawiera separator źródłowy.
  • Domyślna kombinacja przecinek na tabulator obejmuje większość konwersji CSV na TSV w jednym kroku.

Najczęściej zadawane pytania

Nie, o ile przecinki wewnątrz pól są ujęte w podwójne cudzysłowy. Konwerter odczytuje zacytowane pole jako jedną całość, więc osadzony przecinek przetrwa połączenie wiersza separatorem docelowym. Uwaga na separator docelowy: pole, które go zawiera, nie jest cytowane w danych wyjściowych i zostanie podzielone na dodatkowe kolumny.

Excel w systemie Windows domyślnie zapisuje CRLF; Python zapisuje LF, chyba że otworzysz plik w trybie binarnym z flagą newline=''. Dane wyjściowe tego konwertera zawsze używają LF; zamień końce wiersza później, jeśli system odbierający oczekuje CRLF.

Wklejony tekst jest przetwarzany w jednym żądaniu, więc praktyczny limit to tyle, ile Twoja przeglądarka i nasz serwer przyjmą na jedno żądanie. Bardzo duże pliki konwertuj w częściach.

Tak. Wklejony tekst jest wysyłany na nasz serwer w celu wykonania konwersji. Nie jest przechowywany ani dodawany do linku strony.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach