Jak czytać i pisać pliki tekstowe w Python

Jak czytać i pisać pliki tekstowe w Python
W tym artykule obejmie przewodnik wyjaśniający zewnętrzne obsługę plików w Pythonie. Główny nacisk zostanie położony na otwarcie i zamknięcie tekstu i innych nie-binarnych plików danych przechowywanych na nośniku pamięci, umożliwiając uruchamianie różnych operacji na zawartości otwartych plików.

Otwarcie i zamknięcie pliku

Aby odczytać dane z pliku tekstowego o nazwie „Dane.txt ”, musisz użyć metody„ otwartej ”, która jest wyposażona w oficjalne kompilacje Pythona. Sprawdź przykładowy kod poniżej:

f = otwarte („Dane.txt ', „r”)
F.zamknąć()

Pierwsza instrukcja otwiera „dane.plik txt ”w trybie„ r ”(tylko do odczytu). Metoda „Otwórz” akceptuje nazwę pliku i tryb obsługi pliku jako argumentów. Oprócz trybu „R” istnieją również inne tryby, które zostaną wyjaśnione później. Powyższy fragment kodu nie uruchamia żadnych operacji w otwartym pliku. Metoda „zamknięcia” służy do czystego zamykania otwartego pliku, aby pamięć mogła zostać uwolniona i uniknąć uszkodzenia danych w otwartym pliku, który może się zdarzyć czasem, jeśli plik nie jest poprawnie zamknięty.

Zamiast używać metody „otwartych” do obsługi otwierania i zamykania plików, możesz połączyć ją z słowem kluczowym „z” i używać instrukcji „z otwartą”.

z otwartym („Dane.txt ', „r”) jako f:
przechodzić

Główną zaletą używania instrukcji „z otwartą” jest to, że interpreter automatycznie zamyka otwarty plik, gdy blok kodu „z otwartym” jest całkowicie analizowany. Chociaż Garbage Collector w Python automatycznie zamyka otwarte pliki po pewnym czasie zgodnie z przepisami, instrukcje „z otwartymi” zapewniają, że plik jest czysto zamknięty, gdy tylko blok kodu zostanie zakończony, aby uwolnić zasoby.

Czytanie wierszy pliku tekstowego

Aby odczytać zawartość pliku, użyj poniższej próbki kodu:

z otwartym („Dane.txt ', „r”) jako f:
Data = f.Czytać()
Drukuj (dane)

Na przykład, jeśli „dane.plik txt ”ma 1-10 liczb, każdy na nowym wierszu, otrzymasz następujące dane wyjściowe po uruchomieniu powyższego kodu:

Cały zrzut danych „Dane.plik txt ”jest przechowywany w zmiennej„ danych ”. Jeśli chcesz odczytać wiersze do listy, możesz użyć następujących próbek kodu:

z otwartym („Dane.txt ', „r”) jako f:
Data = f.ReadLines ()
Drukuj (dane) z Open („Dane.txt ', „r”) jako f:
data = lista (f)
Drukuj (dane)

Zauważ, że użycie powyższych fragmentów może uzyskać znak „\ n” (Newline) na końcu każdego elementu na liście. Aby usunąć te nowsze znaki, być może będziesz musiał zapętlić się za pośrednictwem listy. Możesz zarówno utworzyć nową listę, jak i rozebrać nowe znaki, używając następującego kodu:

data_list = []
z otwartym („Dane.txt ', „r”) jako f:
dla linii w F:
data_list.Dodatek (wiersz.rozebrać się())
print (data_list)

Uruchomienie powyższego kodu zapewni Ci następujące wyjście:

Zapisanie danych do otwartego pliku

Aby zapisać dane do pliku otwierania za pomocą instrukcji „z otwartą”, będziesz musiał dostarczyć inny tryb otwarcia jako argument. Oto niektóre tryby:

  • „A” - używane do dołączania danych na końcu otwartego pliku, tworzy nowy plik, jeśli nie istnieje
  • „W” - usuwa zawartość otwartego pliku i zapisuje nowe dane, tworzy nowy plik, jeśli nie istnieje
  • „R” - Tryb tylko do odczytu (tryb domyślny, jeśli nie jest dostarczany żaden argument)
  • „R+” - używane zarówno do czytania, jak i pisania (pozycja początkowa znajduje się na początku pliku)
  • „B” - plik jest otwarty w trybie binarnym (przydatne w przypadku plików binarnych nie -text), można łączyć z innymi trybami
  • „A+” - używany do czytania i dołączania, tworzy nowy plik, jeśli nie istnieje
  • „W+” - używany do czytania i pisania, tworzy nowy plik, jeśli nie istnieje

Niektóre fragmenty kodu przy użyciu różnych trybów do zapisu danych są wymienione poniżej.

Aby zapisać nową treść do pliku tekstowego podczas usuwania istniejących danych, użyj następującej próbki:

z otwartym („Dane.txt ', „w”) jako f:
F.Napisz („1 \ n2”)

Po uruchomieniu fragmentu powyżej, 1-10 liczb w „danych.plik txt ”powinien zostać zastąpiony dwoma nowymi wierszami.

Aby dodać wiersze na początku pliku tekstowego, musisz użyć metody „szukaj”, aby wrócić do pozycji początkowej bufora pliku:

z otwartym („Dane.txt ', „r+”) jako f:
Data = f.Czytać()
F.szukaj (0)
F.Write ("-1 \ n0 \ n")
F.Napisz (dane)

Po uruchomieniu fragmentu powyżej liczby -1 i 0 zostaną dodane do dwóch górnych linii w „Danych.pliki txt ”.

Aby dołączyć dane na końcu pliku, użyj następującej próbki:

z otwartym („Dane.txt ', „a”) jako f:
F.Napisz („11 \ n12”)

Po uruchomieniu fragmentu powyżej, 11 i 12 liczb zostanie dodane na końcu pliku.

Wniosek

Wbudowane klasy i metody w Python zapewniają solidny sposób obsługi plików tekstowych. Z tylko kilkoma wierszami kodu możesz manipulować istniejącymi danymi w pliku, a także wstawić nowe wiersze.