Anonimowy użytkownik
Więcej
Jak dołączyć do pliku w Pythonie?
W jaki sposób dołączasz do pliku zamiast go nadpisywać? Czy istnieje jakaś specjalna funkcja, która dołącza do pliku?
1439
3
Musisz otworzyć plik w trybie dołączania, ustawiając "a" lub "ab" jako tryb. Zobacz open().
Kiedy otwierasz z trybem "a", pozycja zapisu będzie zawsze na końcu pliku (append). Możesz otworzyć z "a+", aby umożliwić czytanie, szukanie wstecz i czytanie (ale wszystkie zapisy nadal będą na końcu pliku!).
Przykład:
Uwaga: Użycie 'a' nie jest tożsame z otwarciem z 'w' i szukaniem do końca pliku - zastanów się, co mogłoby się stać, gdyby inny program otworzył plik i zaczął pisać pomiędzy szukaniem a zapisem. W niektórych systemach operacyjnych otwarcie pliku za pomocą 'a' gwarantuje, że wszystkie kolejne zapisy będą dołączane atomowo do końca pliku (nawet jeśli plik rozrasta się o kolejne zapisy).
Kilka więcej szczegółów o tym jak działa tryb "a" (testowane tylko na Linuksie). Nawet jeśli szukasz wstecz, każdy zapis będzie dołączany do końca pliku:
W rzeczywistości,
fopen
manpage stwierdza:Stara uproszczona odpowiedź (nie używając
with
):Przykład: (w prawdziwym programie używaj
with
do zamknięcia pliku - patrz dokumentacja)Prawdopodobnie chcesz przekazać
"a"
jako argument trybu. Zobacz docs dla open().Istnieją inne permutacje argumentu mode dla trybu aktualizującego (+), obcinającego (w) i binarnego (b), ale zaczynanie od
"a"
jest najlepszym rozwiązaniem.