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