Próbuję dodać nowy wiersz do mojego starego pliku csv. Zasadniczo jest aktualizowany za każdym razem, gdy uruchamiam skrypt Python.
Obecnie przechowuję stare wartości wierszy csv na liście, a następnie usuwam plik csv i tworzę go ponownie z nową wartością listy.
Chciałbym wiedzieć, czy są na to lepsze sposoby.
Wolę to rozwiązanie, używając
csv
modułu ze standardowej biblioteki iwith
instrukcji, aby uniknąć pozostawienia pliku otwartego.Kluczowym punktem jest
'a'
dołączanie przy otwieraniu pliku.Jeśli używasz języka Python 2.7, możesz napotkać zbędne nowe linie w systemie Windows. Możesz spróbować uniknąć ich użycia
'ab'
zamiast'a'
tego, jednak spowoduje to TypError: wymagany jest obiekt podobny do bajtów, a nie „str” w Pythonie i CSV w Pythonie 3.6. Dodanienewline=''
, jak sugeruje Natacha, spowoduje wsteczną niezgodność między Pythonem 2 i 3 .źródło
Opierając się na odpowiedzi @GM i zwracając uwagę na ostrzeżenie @John La Rooy, mogłem dołączyć nowy wiersz otwierający plik w
'a'
trybie.Nie próbowałem ze zwykłym pisarzem (bez Dict), ale myślę, że też będzie dobrze.
źródło
Czy otwierasz plik w trybie „a” zamiast „w”?
Zobacz Odczytywanie i zapisywanie plików w dokumentach Pythona
źródło
Jeśli plik istnieje i zawiera dane, możliwe jest automatyczne wygenerowanie
fieldname
parametru dlacsv.DictWriter
:źródło
źródło
Robię w ten sposób, aby dodać nową linię do pliku .csv:
źródło