Jak dołączyć nowy wiersz do CSV Python

Jak dołączyć nowy wiersz do CSV Python
W tym artykule zbadamy metody dołączania nowo utworzonych danych do istniejącego pliku CSV. Moduły CSV zapewniają dwie metody zapisu pliku CSV, które są:
  1. Pisarz
  2. DictWriter

Zastosujemy te metody pisania CSV, aby dołączyć nasze nowo utworzone dane do istniejącego pliku CSV.

Metoda 1: Za pomocą metody CSV Writer ()

W tej metodzie użyjemy metody CSV Writer () do dołączenia nowo utworzonych danych do CSV.

Plik CSV: Poniższy plik CSV (test.CSV) Będziemy używane do dołączania nowego wiersza.

Miesiąc, 1958 1959 1960
340 360 417
318 342 391
Mar, 362 406,419
348 396,461
340 360 417
318 342 391

od pisarza importu CSV

od pisarza importu CSV
# Ta funkcja, która dołącza nowe dane wiersza do istniejącego pliku CSV
def appendNewrow (CSVFileName, elementStoAppend):
# Otwórz plik CSV w trybie Dodatek
Z otwartym (CSVFileName, „A+”, newline = ”) jako append_obj:
# utworzył obiekt pisarza z modułu pisarza
append_writer = Writer (append_obj)
# Utworzony obiekt pisarza, który zapisuje nowy wiersz do CSV
append_writer.Writerow (elementStoAppend)
# Lista nowych elementów, które chcemy dołączyć
newrow = [„dec”, 337, 405, 432]
# wywoływanie funkcji, która akceptuje dwa parametry plik CSV i dane dotyczące nowych wierszy
appendNewrow („test testowy.CSV ', Newrow)

Wyjście:

Miesiąc, 1958 1959 1960
340 360 417
318 342 391
Mar, 362 406,419
348 396,461
340 360 417
318 342 391
DEC, 337 405 432

Linia 1: Importujemy moduł pisarza.

Linia 4 do 10: Utworzyliśmy funkcję o nazwie „appendNewrow”, która akceptuje dwa parametry (nazwa istniejącego pliku CSV i danych). Otwieramy plik CSV (istniejący plik CSV) za pomocą trybu dodania („A”), abyśmy mogli dodać nasze nowe dane do pliku CSV. W tym celu utworzyliśmy obiekt (append_writer) z modułu pisarza. W następnym wierszu wywołujemy Writerow Method z obiektu append_writer, aby dołączyć dane do CSV.

Linia 13 i 15: Utworzyliśmy nową listę danych, którą chcemy dołączyć do istniejącego pliku CSV. W wierszu 15 nazywamy funkcję „appendNewrow” i przekazujemy dwa parametry (nazwa istniejącego pliku CSV i danych).

Teraz zamierzamy dołączyć dane, w których brakuje niektórych danych.

W poprzednim przykładzie widzieliśmy, że w nowo utworzonych danych nie ma wartości kolumny. Ale co się stanie, jeśli będziemy mieć brakującą wartość kolumny? Tak więc, nawet jeśli mamy brakującą wartość kolumny, moduł pisarza CSV nie ma metody sprawdzania żadnych wartości kolumnowych w danych, czy nie.

# Lista nowych elementów, które chcemy dołączyć
newrow = [„dec”, 337, 432]
# wywoływanie funkcji, która akceptuje dwa parametry plik CSV i dane dotyczące nowych wierszy
appendNewrow („test testowy.CSV ', Newrow)

Wyjście:

Miesiąc, 1958 1959 1960
340 360 417
318 342 391
Mar, 362 406,419
348 396,461
340 360 417
318 342 391
DEC, 337 405 432
Dec, 337,432

Utworzyliśmy nowy zestaw danych, w którym brakuje jednej wartości kolumny. Więc kiedy uruchamiamy powyższy przykładowy program, podaje prosty wynik dołączony, jak pokazano na powyższym wyjściu. Ale w samym wyjściu widzimy, że brakuje wartości 405. W rezultacie moduł pisarza CSV nie ma metody określania jakiejkolwiek brakującej wartości kolumny.

Tak więc, jeśli chcemy dostosować właściwą wartość mądrą kolumnę nowo utworzonych danych, nawet jeśli istnieją pewne brakujące wartości, musimy przekazać pewną pustą wartość ciągu wraz z danymi, jak poniżej:

newrow = [„dec”, 337, ", 432]

Powyższy przypadek nie jest wielką sprawą, ponieważ jest tylko jednym wierszem danych, ale kiedy mamy miliardy wierszy, nie możemy obsługiwać takich sytuacji z metodą dodawania pustego ciągu. Ponieważ wtedy stanie się to bardzo żmudna praca.

Metoda 2: Za pomocą metody DictWriter ()

W tej metodzie omówimy metodę DictWriter (), aby dołączyć nowo utworzone dane do CSV. Metoda DictWriter () ma również obiekt, aby dowiedzieć się, która wartość kolumny brakuje, ponieważ jest to metoda oparta na słowniku, a jeśli jakakolwiek wartość klucza jest pusta, będzie automatycznie utrzymać pusty ciąg.

Plik CSV: Używamy tego samego pliku CSV (test.CSV), jak użyliśmy w poprzednich przykładach.

# Ta funkcja, która dołącza nowe dane wiersza do istniejącego pliku CSV
def appendNewrow (CSVFileName, elementStoAppend):
# Otwórz plik CSV w trybie Dodatek
Z otwartym (CSVFileName, „A+”, newline = ”) jako append_obj:
# utworzył obiekt pisarza z modułu pisarza
append_writer = dictWriter (append_obj,
FieldNames = [„Month”, „1958”, „1959”, „1960”])
# Utworzony obiekt pisarza, który zapisuje nowy wiersz do CSV
append_writer.Writerow (elementStoAppend)
# Lista nowych elementów, które chcemy dołączyć
newrow = „miesiąc”: „dec”, „1958”: „337”, „1959”: „405”, „1960”: „432”
# wywoływanie funkcji, która akceptuje dwa parametry plik CSV i dane dotyczące nowych wierszy
appendNewrow („test testowy.CSV ', Newrow)

Wyjście:

Miesiąc, 1958 1959 1960
340 360 417
318 342 391
Mar, 362 406,419
348 396,461
340 360 417
318 342 391
DEC, 337 405 432

Linia 1: Importujemy metodę DictWriter.

Linia 4 do 12: Utworzyliśmy funkcję o nazwie „appendNewrow”, która akceptuje dwa parametry (nazwa istniejącego pliku CSV i danych). Otwieramy plik CSV (istniejący) za pomocą trybu dołączania („A”), abyśmy mogli dodać nasze nowe dane DICT do pliku CSV. Następnie przekazujemy nagłówek CSV w formie listy DictWriter, tworząc sam obiekt. Musimy przekazać nazwy kolumn CSV do obiektu przed napisaniem do CSV. W przeciwnym razie wygeneruje błąd, ponieważ obiekt nie będzie w stanie zrozumieć kluczowych nazw słownika. A w następnym wierszu wywołujemy Writerow Method z obiektu Append_Writer, aby dołączyć dane słownika do CSV.

Linia 14 do 16: Utworzyliśmy nowy słownik danych, który chcemy dołączyć do istniejącego pliku CSV. W wierszu 16 nazywamy funkcję „appendNewrow” i przekazujemy dwa parametry (nazwa istniejącego pliku CSV i danych).

Teraz zamierzamy dołączyć dane, w których brakuje niektórych danych.

Jak wiemy, głównym problemem z metodą pisarza jest to, że nie ma metody automatycznego wykrycia, że ​​brakuje żadnej wartości kolumny. Ale metoda DictWriter może to odgadnąć automatycznie za pomocą brakujących kluczy. Zbadajmy to z przykładem.

# Lista nowych elementów, które chcemy dołączyć
newRow = „miesiąc”: „dec”, „1958”: „337”, „1960”: „432”
# wywoływanie funkcji, która akceptuje dwa parametry plik CSV i dane dotyczące nowych wierszy
appendNewrow („test testowy.CSV ', Newrow)

Teraz przejdziemy nowe dane DICT, w których brakuje klucza („1959”). Przejdźmy więc te dane do programu i zobaczmy wynik.

Wyjście:

Miesiąc, 1958 1959 1960
340 360 417
318 342 391
Mar, 362 406,419
348 396,461
340 360 417
318 342 391
DEC, 337 405 432
Dec, 337, 432

Powyższe dane wyjściowe pokazuje, że zamiast brakującej wartości metoda DictWriter umieści pusty ciąg.

Wniosek

Widzieliśmy dwie metody pisania nowo utworzonych danych do istniejącego pliku CSV. Pierwszy pisarz metody jest dobry, ale tylko w takim przypadku, gdy nie mamy żadnych brakujących wartości kolumnowych. Ponieważ, jak już widzieliśmy, metoda pisarza CSV nie jest w stanie obsługiwać sytuacji braku wartości i wprowadzi określoną wartość kolumny do innej wartości kolumny. Jest to więc główna wada metody pisarza. Ale ta sytuacja jest bardzo łatwo obsługiwana przez metodę DictWriter z powodu kluczy.