Format pliku CSV jest najczęściej używany do utrzymywania baz danych i arkuszy kalkulacyjnych. Pierwsza linia w pliku CSV jest najczęściej używana do definiowania pól kolumnowych, podczas gdy każde inne pozostałe linie są uważane za wiersze. Ta struktura pozwala użytkownikom prezentować dane tabelaryczne za pomocą plików CSV. Pliki CSV można edytować w dowolnym edytorze tekstu. Jednak aplikacje takie jak LibreOffice Calc zapewniają zaawansowane narzędzia do edycji, sortowanie i filtrowanie funkcji.
Czytanie danych z plików CSV za pomocą Pythona
Moduł CSV w Python umożliwia czytanie, pisanie i manipulowanie wszelkimi danymi przechowywanymi w plikach CSV. Aby odczytać plik CSV, musisz użyć metody „czytnika” z modułu „CSV” Pythona, który jest zawarty w standardowej bibliotece Pythona.
Zastanów się, że masz plik CSV zawierający następujące dane:
Mango, banan, jabłko, pomarańczPierwszy wiersz pliku określa każdą kategorię kolumny, nazwa owoców w tym przypadku. Druga linia przechowuje wartości pod każdą kolumną (zapas w ręku). Wszystkie te wartości są ograniczone przez przecinek. Gdybyś otworzył ten plik w aplikacji arkusza kalkulacyjnego, takiej jak LibreOffice Calc, wyglądałoby to tak:
Teraz odczytanie wartości z „owoców.Plik CSV ”Korzystając z modułu„ CSV ”Pythona, musisz użyć metody„ Reader ”w następującym formacie:
Importuj CSVPierwszy wiersz w powyższej próbce importuje moduł „CSV”. Następnie instrukcja „z otwartym” służy do bezpiecznego otwarcia pliku przechowywanego na dysku twardym („owoce.CSV ”w tym przypadku). Nowy obiekt „Data_reader” jest tworzony przez wywołanie metody „czytnika” z modułu „CSV”. Ta metoda „czytelnika” bierze nazwę pliku jako obowiązkowy argument, więc odniesienie do „owoców.CSV ”jest przekazywany. Następnie uruchomiono instrukcję pętli „for”, aby wydrukować każdą linię z „owoców.plik CSV ”. Po uruchomieniu próbki kodu wymienionego powyżej, należy uzyskać następujące dane wyjściowe:
[„50”, „70”, „30”, „90”]Jeśli chcesz przypisać numery linii do wyjścia, możesz użyć funkcji „Enumerate”, która przypisuje liczbę do każdego elementu w iterowalnym (zaczynając od 0, chyba że się zmieni).
Importuj CSVZmienna „indeksowa” utrzymuje liczbę dla każdego elementu. Po uruchomieniu próbki kodu wymienionego powyżej, należy uzyskać następujące dane wyjściowe:
0 [„Mango”, „Banana”, „Apple”, „Orange”]Ponieważ pierwszy wiersz w pliku „CSV” zwykle zawiera nagłówki kolumn, możesz użyć funkcji „wyliczania”, aby wyodrębnić te nagłówki:
Importuj CSVBlok „If” w powyższym instrukcji sprawdza, czy indeks jest równy zero (pierwszy wiersz w „owocach.plik CSV ”). Jeśli tak, to wartość zmiennej „linii” jest przypisana do nowej zmiennej „nagłówki”. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:
[„Mango”, „Banana”, „Apple”, „Orange”]Pamiętaj, że możesz użyć własnego ogranicznika podczas dzwonienia „CSV.Metoda czytnika ”za pomocą opcjonalnego argumentu„ delimiter ”w następującym formacie:
Importuj CSVPonieważ w pliku CSV każda kolumna jest powiązana z wartościami w wierszu, możesz utworzyć obiekt Python „Słownik” podczas czytania danych z pliku „CSV”. Aby to zrobić, musisz użyć metody „DicTreader”, jak pokazano w poniższym kodzie:
Importuj CSVPo uruchomieniu próbki kodu wymienionego powyżej, należy uzyskać następujące dane wyjściowe:
„Mango”: „50”, „banan”: „70”, „Apple”: „30”, „Orange”: „90”Więc teraz masz obiekt słownika, który kojarzy poszczególne kolumny z odpowiednimi wartościami w wierszach. Działa to dobrze, jeśli masz tylko jeden rząd. Załóżmy, że „owoce.Plik CSV ”zawiera teraz dodatkowy wiersz, który określa, ile dni zajmie zapasy owoców.
Mango, banan, jabłko, pomarańczGdy masz wiele wierszy, uruchomienie tego samego kodu powyżej wytworzy inne dane wyjściowe.
„Mango”: „50”, „banan”: „70”, „Apple”: „30”, „Orange”: „90”Może to nie być idealne, ponieważ możesz chcieć mapować wszystkie wartości dotyczące jednej kolumny na jedną parę wartości klucza w słowniku Python. Zamiast tego wypróbuj ten kod::
Importuj CSVPo uruchomieniu próbki kodu wymienionego powyżej, należy uzyskać następujące dane wyjściowe:
„Mango”: [„50”, „3”], „banan”: ['70', „1 '],„ Apple ”: [' 30 ',' 6 '],' Orange ': ['90 ', „4']Pętla „dla” jest używana na każdym elemencie obiektu „DicTreader” do zapętlania par kluczowych. Wcześniej zdefiniowana jest nowa zmienna słownika Pythona „data_dict”. Będzie przechowywać ostateczne mapowania danych. W drugim bloku pętli „for” stosuje się metodę „SetDefault” Pythona. Ta metoda przypisuje wartość do klucza słownika. Jeśli para kluczowej wartości nie istnieje, nowa jest tworzona z określonych argumentów. W takim przypadku nowa pusta lista zostanie przypisana do klucza, jeśli jeszcze nie istnieje. Na koniec „wartość” jest dołączona do odpowiedniego klucza w końcowym obiekcie „data_dict”.
Zapisanie danych do pliku CSV
Aby zapisać dane do pliku „CSV”, musisz użyć metody „Writer” z modułu „CSV”. Poniższy przykład dołączy nowy wiersz do istniejących „owoców.plik CSV ”.
Importuj CSVPierwsza instrukcja otwiera plik w trybie „Dodatek”, oznaczony argumentem „A”. Następnie wywoływana jest metoda „pisarza” i odniesienie do „owoców.plik CSV ”jest przekazywany jako argument. Metoda „Writerow” zapisuje lub dodaje nowy wiersz do pliku.
Jeśli chcesz przekonwertować Słownik Python na strukturę pliku „CSV” i zapisz wyjście w pliku „CSV”, wypróbuj ten kod:
Importuj CSVPo otwarciu pustych „owoców.Plik CSV ”za pomocą instrukcji„ z otwartą ”, zdefiniowano nową zmienną„ nagłówki ”, które zawierają nagłówki kolumn. Nowy obiekt „Data_Writer” jest tworzony przez wywołanie metody „DictWriter” i przekazanie jej odniesienia do „owoców.plik CSV ”i argument„ FieldNames ”. W następnym wierszu nagłówki kolumn są zapisywane do pliku za pomocą metody „Writeheader”. Dwa ostatnie stwierdzenia dodają nowe wiersze do odpowiadających im nagłówków utworzonych w poprzednim kroku.
Wniosek
Pliki CSV zapewniają schludny sposób zapisywania danych w formacie tabelarycznym. Wbudowany moduł „CSV” Pythona ułatwia obsługę danych dostępnych w plikach „CSV” i wdrażanie na nim dalszej logiki.