csv – Czytanie i pisanie plików CSV¶

Zawartość modułu¶

csv moduł definiuje następujące funkcje:

csv.reader(csvfile, dialect = „excel”, ** fmtparams ) ¶

Zwróć obiekt czytnika, który będzie iterował po liniach w podanym pliku csv.csvfile może być dowolnym obiektem obsługującym protokół iteratora i zwracającym astring za każdym razem, gdy wywoływana jest jego metoda __next__() – obiekty plikowe i obiekty listy są odpowiednie. Jeśli csvfile jest obiektem pliku, należy go otworzyć za pomocą newline="". 1 Można podać opcjonalny parametr dialektu, który służy do definiowania zestawu parametrów specyficznych dla określonego dialektu CSV. Może to być instancja podklasy klasy Dialect lub jeden z ciągów zwracanych przez funkcję list_dialects(). Inne opcjonalne argumenty słowa kluczowego fmtparams można podać w celu przesłonięcia indywidualnych parametrów formatowania w bieżącym dialekcie. Aby uzyskać szczegółowe informacje na temat dialektu i parametrów formatowania, zobacz sekcję Dialekty i parametry formatowania.

Każdy wiersz odczytany z pliku csv jest zwracany jako lista ciągów. Nie jest wykonywana automatyczna konwersja typu danych, chyba że określono opcję formatowania QUOTE_NONNUMERIC (w takim przypadku pola bez cudzysłowu są przekształcane w liczby zmiennoprzecinkowe).

Krótki przykład użycia:

csv.writer(csvfile, dialect = „excel”, ** fmtparams) ¶

Zwróć obiekt pisarza odpowiedzialny za konwersję dane użytkownika w rozdzielane ciągi na danym obiekcie podobnym do pliku. csvfile może być dowolnym obiektem z metodą write(). Jeśli csvfile jest obiektem pliku, należy go otworzyć za pomocą newline="" 1. Można podać opcjonalny parametr dialektu, który jest używany do zdefiniowania zestawu parametrów specyficznych dla konkretnego dialektu CSV. Może to być instancja podklasy klasy Dialect lub jeden z ciągów zwracanych przez funkcję list_dialects(). Inne opcjonalne argumenty słowa kluczowego fmtparams można podać w celu przesłonięcia indywidualnych parametrów formatowania w bieżącym dialekcie. Aby uzyskać szczegółowe informacje na temat dialektu i parametrów formatowania, zobacz sekcję Dialekty i Parametry formatowania. Aby maksymalnie ułatwić komunikację z modułami, które implementują DB API, wartość None jest zapisywana jako pusty ciąg. Chociaż nie jest to transformacja odwracalna, ułatwia zrzucanie wartości danych SQL NULL do plików CSV bez wstępnego przetwarzania danych zwróconych z wywołania cursor.fetch*. Wszystkie inne dane niebędące ciągami są łańcuchowe str() przed zapisaniem.

Krótki przykład użycia:

csv.register_dialect(nazwa]) ¶

Skojarz dialekt z nazwą. nazwa musi być ciągiem. Dialekt można określić albo przez przekazanie podklasy Dialect, albo przez argumenty słów kluczowych fmtparams, albo oba, z argumentami słów kluczowych przesłaniającymi parametry dialektu. Aby uzyskać szczegółowe informacje na temat dialektu i parametrów formatowania, zobacz sekcję Dialekty i parametry formatowania.

csv.unregister_dialect(nazwa) ¶

Usuń dialekt powiązany z nazwą z rejestru dialektów. Jeśli nazwa nie jest zarejestrowaną nazwą dialektu, jest podnoszona Error.

csv.get_dialect(nazwa) ¶

Zwróć dialekt związany z nazwą. Error jest podnoszone, jeśli nazwa nie jest zarejestrowaną nazwą dialektu. Ta funkcja zwraca niezmienną Dialect.

csv.list_dialects() ¶

Zwróć nazwy wszystkich zarejestrowanych dialektów.

csv.field_size_limit() ¶

Zwraca bieżący maksymalny rozmiar pola dozwolone przez parser. Jeśli podano nowy_limit, staje się to nowym limitem.

Moduł csv definiuje następujące klasy:

classcsv.DictReader(f, fieldnames = None, restkey = None, restval = None, dialect = „excel”, * args, ** kwds) ¶

Utwórz obiekt który działa jak zwykły czytnik, ale mapuje informacje w każdym wierszu na dict, którego klucze są podane przez opcjonalny parametr fieldnames.

Parametr fieldnames to sekwencja. Jeśli nazwy pól są pominięte, wartości w pierwszym wierszu pliku f zostaną użyte jako nazwy pól. Niezależnie od tego, w jaki sposób nazwy pól są określane, słownik zachowuje ich pierwotną kolejność.

Jeśli wiersz ma więcej pól niż nazw pól, pozostałe dane są umieszczane na liście i przechowywane z nazwą pola określoną przez restkey (która domyślnie wynosi None). Jeśli niepusty wiersz zawiera mniej pól niż nazwy pól, brakujące wartości są wypełniane wartością restval (która domyślnie jest None).

Wszystkie pozostałe argumenty opcjonalne lub argumenty słów kluczowych są przekazywane do bazowego wystąpienia reader.

Zmieniono w wersji 3.6: Zwracane wiersze są teraz typu OrderedDict.

Zmieniono w wersji 3.8: Zwracane wiersze są teraz typu dict.

Krótki przykład użycia:

classcsv.DictWriter( f, fieldnames, restval = „”, extrasaction = „raise”, dialect = „excel”, * args, ** kwds) ¶

Utwórz obiekt, który działa jak zwykły program zapisujący, ale mapuje słowniki na wiersze wyjściowe. Parametr fieldnames to sequence kluczy określających kolejność, w jakiej wartości ze słownika przekazywane do metody writerow() są zapisywane do pliku filef. Opcjonalny parametr restval określa wartość, która ma zostać zapisana, jeśli w słowniku brakuje klucza w nazwach pól. Jeśli słownik przekazany do metody writerow() zawiera klucz nieznaleziony infieldnames, opcjonalny parametr extrasaction wskazuje, jaką czynność należy wykonać. Jeśli jest ustawiony na "raise", podniesiona jest wartość domyślna ValueError. Jeśli jest ustawiona na "ignore", dodatkowe wartości w słowniku są ignorowane. Wszelkie inne argumenty opcjonalne lub słowa kluczowe są przekazywane do bazowej instancji writer.

Zauważ, że w przeciwieństwie do klasy DictReader, nazwy pól parametr klasy DictWriter nie jest opcjonalny.

Krótki przykład użycia:

classcsv.Dialect

Klasa Dialect jest klasą kontenera, na której opiera się głównie jej atrybuty, które są używane do definiowania parametrów dla określonego reader lub writer instancja.

classcsv.excel

Klasa excel definiuje typowe właściwości pliku CSV wygenerowanego przez program Excel. Jest zarejestrowany pod nazwą dialektu "excel".

classcsv.excel_tab

Klasa excel_tab definiuje typowe właściwości pliku rozdzielanego znakami TAB wygenerowanego przez program Excel. Jest zarejestrowany pod nazwą dialektu "excel-tab".

classcsv.unix_dialect

Klasa unix_dialect definiuje typowe właściwości pliku CSV generowanego w systemach UNIX, tj. przy użyciu "\n" jako zakończenia linii i cytowania wszystkich pól. Jest zarejestrowany pod nazwą dialektu "unix".

Nowość w wersji 3.2.

classcsv.Sniffer

Klasa Sniffer służy do określania formatu pliku CSV.

Klasa Sniffer udostępnia dwie metody:

sniff(sample, delimiters = None) ¶

Analizuj podaną próbkę i zwróć Dialect podklasę odzwierciedlającą znalezione parametry. Jeśli podano opcjonalny parametr delimiters, jest on interpretowany jako ciąg zawierający możliwe prawidłowe znaki ogranicznika.

has_header(sample) ¶

Przeanalizuj przykładowy tekst (przypuszczalnie CSV) i zwróć True, jeśli pierwszy wiersz wydaje się być serią nagłówków kolumn.

Przykład dla Sniffer use:

Moduł csv definiuje następujące stałe:

csv.QUOTE_ALL

Nakazuje obiektom writer cytowanie wszystkich pól.

csv.QUOTE_MINIMAL

Instruuje obiekty writer, aby cytować tylko te pola, które zawierają znaki specjalne, takie jak separator, cudzysłów lub dowolny znak w wyznaczniku linii.

csv.QUOTE_NONNUMERIC

Nakazuje obiektom writer cytowanie wszystkich pól nieliczbowych .

Nakazuje czytelnikowi rozmowę wszystkie pola bez cudzysłowów wpisz float.

csv.QUOTE_NONE

Instrukcje writer obiekty nigdy nie cytowały pól. Gdy ograniczenie currentdelimiter występuje w danych wyjściowych, jest poprzedzone bieżącym znakiem escapecharcharacter. Jeśli escapechar nie jest ustawiony, program zapisujący podniesie Error, jeśli napotkano jakiekolwiek znaki wymagające zmiany znaczenia.

Instrukcje reader aby nie wykonywać specjalnego przetwarzania znaków cudzysłowu.

Moduł csv definiuje następujący wyjątek:

wyjątekcsv.Error

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *