Rad s datotečnim objektima: funkcija otvorenog, čitanja i zapisivanja u datoteke u Pythonu

Datoteke pripadaju osnovnim vrstama Python jezika. To je povezujuće sučelje između koda i imenovanih područja memorije računala. Datoteke obavljaju funkciju "očuvanja" objekata. Oni vam omogućuju pohranjivanje svih informacija s njihovim naknadnim istovarom i obradom. Razmotrit ćemo kako snimiti datoteku u Python i obrnuto pročitati podatke s praktičnim primjerima.

Kako otvoriti datoteku?

Rad s ovom vrstom podataka počinje s ugrađenom otvorenom funkcijom. Stvara objekt datoteke koji omogućuje komunikaciju s vanjskim dokumentom na računalu. Nakon što pozovete funkciju, možete izvoditi operacije čitanja ili pisanja u datotekama u Pythonu.


Za početnike rad s datotekama čini se kompliciranim. Oni se razlikuju od uobičajenih linija, brojeva, rječnika. Za interakciju s njima ne koriste se literali sekvenci ili refleksije, samo metode. Većina metoda je usmjerena na implementaciju ulaznih i izlaznih informacija, ali postoje i specifičnije. Na primjer, naredba output.flush () koja izlazi izlazne me uspremnike na disk. No, počnimo istražujući kako otvoriti datoteku. Prije svega, trebate nazvati open (), u zagradama dati funkciju, ime vanjske datoteke i način rada s njom:
  • r - znači da će se po zadanom otvoriti način čitanja;
  • w - način pisanja za datoteke u Pythonu;
  • a - za bilježenje podataka na kraju dokumenta;
  • b - obrada binarnih datoteka;
  • znak "+" znači čitanje i snimanje u isto vrijeme.
  • Važno pravilo je da se svi argumenti moraju navesti kao linije linija, tj. U parovima i zarezima:


  • integrirano razvojno okruženje.
  • Kako koristiti datoteke? Kada je datoteka otvorena, možete koristiti sve njezine metode. Sadržaj za čitanje će biti prikazan kao redak. Pisanje u datoteke u Python informacijama također treba imati oblik nizova objekata. Popis najčešće korištenih operacija:
  • input.read () - vraća informacije kao jedan redak;
  • input.readline () - čita sljedeći redak;
  • input.readlines () - pošaljite datoteku za čitanje s popisom redaka;
  • .write () - linije zapisa;
  • .writelines () - upisivanje svih redaka;
  • .close () - ručno zatvaranje dokumenta.
  • Značajke rada s datotekama

    Sve informacije sadržane u datotekama prikazane su kao objekt stringa. Stoga, prije nego što počnete s obradom, trebate pretvoriti podatke. Za to koristite ugrađene metode int () ili popis (). Također, izrazi za oblikovanje nizova. Metoda zatvori je opcionalna. No, kada radite s flushom, resursi OS-a se oslobađaju i izlazni me uspremnici se guraju. Prema zadanim postavkama, izlaz je putem međumemorija. Kada se unese u datoteku u Pythonu, informacije se ne dobivaju odmah na disk, već samo u trenutku zatvaranja.

    Primjer pisanja u datoteku

    Pogledajmo primjer rada s tekstualnom datotekom uinteraktivna sesija. Prvi korak je otvaranje datoteke u IDLE. Prethodno kreiranje nije potrebno:
  • first_f = open ("first_file.txt", "w")
  • first_f.write ("Bilo koji tekst") # Napišite redak
  • 12
  • ]
  • first_f.write ("I opet, bilo koji tekst")
  • 20
  • first_f.close () # Zatvoreno;
  • first_f = open ("first_file.txt")
  • first_f.readline () # Pročitajte što je napisano
  • "Bilo koji tekst"
  • Nakon što je redak napisan U datoteci Python 3.0 vraća broj unesenih znakova. To se ne događa u prethodnoj verziji. U primjeru je korišten znak kraja reda n. Bez nje, metoda pisanja piše sav čvrsti tekst.
    Ako želite pročitati sadržaj datoteke bez ukazivanja n na kraju, koristite read:
  • print (open ("first_file.txt"). Read ())
  • bilo koji tekst;
  • i opet tekst;
  • Možete pogledati svaki red redom po svojoj iteraciji:
  • za x in open ("first_file.txt"):
  • print (x, end = "")
  • - koji tekst
  • i opet tekst # Svaka nova linija bit će uvučena.
  • Spremanje osnovnih Python jezika

    Možete spremiti sve ugrađene ili ručno izrađene objekte u tekstualnu datoteku. Da biste zapisivali datoteke u Pythonu uzastopno, svaka stavka mora biti pretvorena u redak. Također, zapamtite da metode ne oblikuju podatke.
  • Primjer_2 = otvoreno ("second_file.txt", "w")
  • Popis = [1,8, "r"]
  • C, B, P = 349056
  • Page = "Skup znakova"
  • Example_2.write (str (List) + "n")
  • 12
  • Primjer_2. Pisati («% s,% s,% sn »% [C, B, P])
  • 11
  • Primjer_2.piši (Stranica +« n »)
  • 15
  • Primjer_2.close ()
  • print (open ("second_file.txt") read ())
  • [1, 8, r]
  • 349056
  • ]
  • skup znakova
  • U ovom primjeru, prvi datotečni objekt "second_file.txt" je prvi put stvoren za pisanje. Pet imena se dodjeljuju vrijednosti popisa, niza i cijelih brojeva. Prije snimanja, svaki se objekt pretvara u niz. Na kraju se datoteka otvara uz pomoć ugrađene funkcije ispisa i metode čitanja.

    Po istom principu, Python snima rječnik u datoteku. Morate pozvati str funkciju i proslijediti je kao objekt argumenta. Najteža stvar nije spremiti podatke, nego ih dobiti i pretvoriti natrag u rječnike ili brojeve. Pretvorba niza u objekte jezika pomoći će metodi čitanja:
  • L = open ("second_file.txt")
  • F = L. readline ()
  • F
  • "349056n"
  • Brojevi = F. podijeljeni (",") # com podijeljeni u podnizove
  • Brojevi
  • ["34", "90", "56n"]
  • Brojevi = [int (x) za x u brojevima] # Pretvori cijeli popis
  • Brojevi
  • [34, 90, 56]
  • Objekti koji koriste posebne module

    Standardna knjižnica sadrži modul koji se zove pickle. Ovo je iznimno koristan alat za snimanje i dohvaćanje informacija. Pogotovo ako ne vjerujete izvoru datoteke. Modul je svestrani alat koji automatski formatira i pretvara podatke. Za pisanje predmeta bilo kojeg tipa (rječnika) dovoljno je proći ga u krastavac:
  • Rječnik = {«osam»: 8 «tri»: 3 «nula»: 0}
  • Rječnik
  • {«osmica»: 8 «tri»: 3 «nula»: 0}
  • dokument = otvoren («mojdokument.pkl», «wb»)
  • uvoz krastavac
  • ]
  • roosol.dump (Rječnik, dokument)
  • document.close ()
  • document = open ("moj dokument.pkl", "rb")
  • D = pickle.load (dokument)
  • D
  • 92) {"osam": 8 "tri": 3 "nula": 0}Kod modula nema potrebe ručno izdvajati i pretvarati podatke. On sam obavlja serijalizaciju objekata u nizu bajtova i natrag. Da biste to učinili, u otvorenim argumentima naveden je binarni zapis wb-write. Slično kao i kiseli krastavac, podatke možete sačuvati pomoću Python modula - JSON. Snimanje u datoteku vrši se metodom izvatka. Argumenti uključuju pohranjene objekte koji se automatski serijski unose u niz JSON formata.
  • import json
  • rječnik = {«osam»: 8 «tri»: 3 «nula»: 0}
  • s otvorenim («moj dokument.json», «w») kao m_d:
  • json.dump (Rječnik, m_d)
  • Postoje složeniji načini rada s datotekama. Primjerice, postupak skeniranja, organizacija ciklusa snimanja. Da biste vidjeli potpuni popis metoda, upotrijebite funkcije pomoći ili direktorija u interaktivnoj sesiji. Također, u arsenalu jezika postoje objekti slični datotekama - sockets, shells i I /O streamovi.

    Povezane publikacije