Praca z obiektami plików: funkcja otwierania, czytania i zapisywania do plików w Pythonie

Pliki należą do podstawowych typów danych w języku Python. Jest to interfejs łączący kod z nazwanymi obszarami pamięci komputera. Pliki wykonują funkcję "zachowywania" obiektów. Pozwalają one na przechowywanie wszelkich informacji przy ich późniejszym rozładowywaniu i przetwarzaniu. Zastanowimy się, jak nagrać plik w Pythonie i odczytać dane z odwróceniem za pomocą praktycznych przykładów.

Jak otworzyć plik?

Praca z tym typem danych rozpoczyna się od wbudowanej funkcji otwartej. Tworzy obiekt pliku, który zapewnia komunikację z zewnętrznym dokumentem na komputerze. Po wywołaniu funkcji można wykonywać operacje odczytu i zapisu w plikach w języku Python.


Dla początkujących praca z plikami wydaje się skomplikowana. Różnią się one od zwykłych linii, liczb, słowników. Aby z nimi współdziałać, literały sekwencji lub odbić nie są używane, tylko metody. Większość metod ma na celu wprowadzenie informacji wejściowych i wyjściowych, ale są bardziej szczegółowe. Na przykład instrukcja output.flush (), która wyprowadza bufory wyjściowe na dysk. Ale zacznijmy od zbadania, jak otworzyć plik. Przede wszystkim musisz wywołać open (), w nawiasie podać funkcję, nazwę pliku zewnętrznego i tryb pracy z nim:
  • r - oznacza, że ​​domyślnie otwarty zostanie tryb odczytu;
  • w - tryb zapisu dla plików w Pythonie;
  • a - do zapisu informacji na końcu dokumentu;
  • b - przetwarzanie plików binarnych;
  • znak "+" oznacza jednocześnie czytanie i nagrywanie.
  • Ważną regułą - wszystkie argumenty muszą być zmiennymi tekstowymi, które w cudzysłowie i przecinki:


  • This_file = open («C: dziwne», «w») # Przykład wywołania funkcji otwarte zintegrowane środowisko programistyczne.
  • Jak korzystać z plików?

    Gdy plik jest otwarty, możesz użyć wszystkich jego metod. Treść do czytania zostanie przedstawiona jako linie. Zapisu plików w Pythonie informacje powinny być również w postaci obiektów smyczkowych. Lista najczęściej używanych operacji:
  • input.read () - zwraca informacje w jednej linii;
  • input.readline () - odczyt następnego wiersza;
  • input.readlines () - przesłać plik do czytania dość listę ciągów;
  • .write () - zapisuj linie;
  • .writelines () - rejestr wszystkich pozycjach;
  • .close () - ręcznie zamknij dokument.
  • Funkcje pracy z plikami

    Wszystkie informacje zawarte w plikach są przedstawiane jako obiekt tekstowy. Dlatego zanim zaczniesz go przetwarzać, musisz przekonwertować dane. Użyj wbudowanych metod int () lub list () do tego. Ponadto wyrażenia służące do formatowania ciągów. Metoda close jest opcjonalna. Jednak podczas pracy z opróżnieniem zasoby systemu operacyjnego są zwalniane, a bufory wyjściowe są wypychane. Domyślnie wyjście jest przez pośrednie bufory. Gdy wpis zostanie wprowadzony do pliku w Pythonie, informacje nie są natychmiast przekazywane do dysku, ale tylko w momencie zamykania.

    Przykład zapisu do pliku

    Przyjrzyjmy się przykładowi pracy z plikiem tekstowym wsesja interaktywna. Pierwszym krokiem jest otwarcie pliku w IDLE. Wstępnego tworzenia nie jest konieczne
  • pervыy_f = otwartym ("pervыy_fayl.txt", "w")
  • ,
  • pervыy_f.write („Be tekstp„) # zapisuje linie
  • 12 [36 ]
  • pervыy_f.write ("ponownie wszelkie tekstp")
  • 20
  • pervыy_f.close () # Zamknąć;
  • pervыy_f = open ("pervыy_fayl.txt")
  • pervыy_f.readline () # Czytamy, co jest napisane
  • "Każdy tekstp"
  • Po linia zapisu W pliku Python 3.0 zwraca liczbę wprowadzonych znaków. Tak się nie dzieje w poprzedniej wersji. W tym przykładzie użyto znaku końca linii n. Bez tego metoda write zapisuje cały tekst ciągły.
    Jeśli chcesz przeczytać zawartość pliku bez określania n koniec, należy użyć metody odczytu: (. Open («pervыy_fayl.txt») read ())
  • print
  • z dowolnego tekstu;
  • i ponownie tekst;
  • Zobacz każdą linię można z kolei wykorzystać iteracyjny:
  • X w otwartym («pervыy_fayl.txt")
  • ,
  • druku (x, koniec = «»)
  • ,
  • każde -co tekst
  • i ponownie tekst # Każda nowa linia będzie wcięta.
  • Zapisywanie Podstawowym przedmiotem pliku języka Python

    plik tekstowy można zapisać osadzone obiekty lub utworzone ręcznie. Aby sekwencyjnie nagrywać pliki w Pythonie, każdy element musi zostać wcześniej przekonwertowany na linię. Pamiętaj też, że metody nie formatują danych.
  • Przykład_2 = otwarty ("drugi_plik.txt", "w")
  • Lista = [1,8, "r"]
  • C, B, P = 349056
  • Strona = "Zestaw znaków"
  • Przykład_2.write (str (Lista) + "n")
  • 12
  • Przykład_2.write ("% s,% s,% sn »% [C, B, P])
  • 11
  • Example_2.write (Strona +« n »)
  • 15
  • prymer_2.close ()
  • druku (otwarte («vtoroy_fayl.txt»). odczytać ()),
  • [1, 8, «r»]
  • ,
  • 349 056 [65 ] zestaw
  • postać
  • W tym przykładzie, po pierwsze utworzenie nowego pliku, obiekt „vtoroy_fayl.txt” nagrania. Pięciu nazwom przypisuje się wartość listy, łańcucha i liczb całkowitych. Przed nagraniem każdy obiekt jest konwertowany na ciąg znaków. Na końcu plik otwiera się za pomocą wbudowanej funkcji drukowania i metody odczytu.

    Na tej samej zasadzie Python zapisuje wpis słownikowy do pliku. Musisz wywołać funkcję str i przekazać ją jako obiekt argumentu. Najtrudniejszą rzeczą nie jest zapisywanie danych, ale zdobywanie ich i konwersja z powrotem do słowników lub liczb. Konwersja elementów liniowych w języku pomaga metoda readline:
  • L = otwartym («vtoroy_fayl.txt")
  • F = L readline ()
  • ,
  • M
  • ,
  • "349056n"
  • n = F. split («») # com podzielony podciągów
  • n
  • ["34", "90", "56n"]
  • n = [int (x) dla x, numery] # konwersji całej listy
  • n
  • [34, 90, 56],
  • Zapis na Obiekty korzystające ze specjalnych modułów

    Standardowa biblioteka zawiera moduł o nazwie pikle. Jest to niezwykle przydatne narzędzie do nagrywania i wyszukiwania informacji. Zwłaszcza, gdy nie ufasz źródłu pliku. Moduł jest wszechstronnym narzędziem, które automatycznie formatuje i konwertuje dane. Aby nagrać Przedmiot według dowolnego typu (słownik), jest wystarczające, aby transmitować trawiący:
  • Słownik = { "osiem" 8 "trzy" 3 "zero": 0}
  • słownik
  • , { "osiem" 8 "trzy" 3 "zero": 0}
  • dokumencie = otwartym ("moy_dokument.pkl", "WB")
  • ,
  • import zalewa [86 ]
  • roosol.dump (Słownik, dokument)
  • document.close ()
  • document = open ("mój dokument.pkl", "rb")
  • D = pickle.load (dokument)
  • D
  • 92) {"osiem": 8 "trzy": 3 "zero": 0}W module nie ma potrzeby ręcznego wyodrębniania i konwertowania danych. On sam dokonuje serializacji obiektów w rzędzie bajtów iz powrotem. Aby to zrobić, plik binarny zapisu w jest określony w otwartych argumentach. Podobnie jak pikle, możesz "zachować" dane za pomocą modułu Python - JSON. Zapisywanie do pliku odbywa się za pomocą metody dump. Argumenty obejmują przechowywane obiekty, które są automatycznie serializowane do ciągu w formacie JSON.
  • import json
  • słownik = {«osiem»: 8 «trzy»: 3 «zero»: 0}
  • z otwartym («mój dokument.json», «w») jako m_d:
  • json.dump (Dictionary, m_d)
  • Istnieją bardziej złożone sposoby pracy z plikami. Na przykład operacja skanowania, organizacja cykli nagrywania. Aby zobaczyć pełną listę metod, użyj funkcji pomocy lub dir w sesji interaktywnej. Również w arsenale języków znajdują się obiekty podobne do plików - gniazda, powłoki i strumienie we /wy.

    Powiązane publikacje