Delo z datotečnimi objekti: funkcija odprtega, branja in zapisovanja datotek v Pythonu

Datoteke pripadajo osnovnim tipom podatkov jezika Python. To je povezovalni vmesnik med kodo in imenovanimi področji računalniškega pomnilnika. Datoteke opravljajo funkcijo »ohranjanja« objektov. Omogočajo shranjevanje vseh informacij z nadaljnjim razkladanjem in obdelavo. Razmislili bomo o tem, kako zapisati datoteko v Python in povratno prebrati podatke s praktičnimi primeri.

Kako odpreti datoteko?

Delo s to vrsto podatkov se začne z vgrajeno odprto funkcijo. Ustvari datotečni objekt, ki omogoča komunikacijo z zunanjim dokumentom v računalniku. Ko pokličete funkcijo, lahko izvedete operacije branja ali pisanja v datotekah v Pythonu.


Za začetnike se delo z datotekami zdi zapleteno. Razlikujejo se od običajnih linij, številk, slovarjev. Za interakcijo z njimi se ne uporabljajo literali zaporedij ali refleksij, samo metode. Večina metod je namenjena implementaciji vhodnih in izhodnih informacij, vendar so bolj specifične. Na primer, ukaz output.flush (), ki izhodne medpomnilnike odda na disk. Toda začnimo z raziskovanjem, kako odpreti datoteko. Najprej morate poklicati open (), v oklepaju dati funkcijo, ime zunanje datoteke in način delovanja z njim:
  • r - pomeni, da se privzeto odpre način za branje;
  • w - način pisanja za datoteke v Pythonu;
  • a - za beleženje informacij na koncu dokumenta;
  • b - obdelava binarnih datotek;
  • znak "+" pomeni istočasno branje in snemanje.
  • Pomembno pravilo je, da je treba vse argumente določiti kot vrstice vrstic, to je v parih in vejicah:


  • razvojno okolje.
  • Kako uporabljati datoteke?

    Ko je datoteka odprta, lahko uporabite vse njene metode. Vsebina za branje bo predstavljena kot vrstice. Pisanje datotek v Pythonove informacije mora imeti tudi obliko objektov nizov. Seznam najbolj uporabljenih operacij:
  • input.read () - vrne informacije kot eno vrstico;
  • input.readline () - preberite naslednjo vrstico;
  • input.readlines () - predloži datoteko za branje v celoti s seznamom vrstic;
  • .write () - zapisne črte;
  • .writelines () - zapis vseh vrstic;
  • .close () - ročno zapiranje dokumenta.
  • Značilnosti dela z datotekami

    Vse informacije v datotekah so predstavljene kot predmet niza. Zato morate pred začetkom obdelave pretvoriti podatke. Za to uporabite vgrajene metode int () ali list (). Tudi izrazi za oblikovanje nizov. Metoda »Zapri« ni obvezna. Toda, ko delate s flush, so viri OS sproščeni in izhodni medpomnilniki so izrinjeni. Izhod je privzeto prek vmesnih vmesnih pomnilnikov. Ko se vnos vnese v datoteko v Pythonu, informacije ne pridejo takoj na disk, ampak samo ob zaključku.

    Primer pisanja v datoteko

    Poglejmo primer dela z besedilno datoteko vinteraktivna seja. Prvi korak je, da odprete datoteko v IDLE. Pred-ustvarjanje ni potrebno:
  • first_f = open ("first_file.txt", "w")
  • first_f.write ("Vse besedilo") # Napišite vrstico
  • 12
  • ]
  • first_f.write ("In znova besedilo")
  • 20
  • first_f.close () # Zaprto;
  • first_f = open ("first_file.txt")
  • first_f.readline () # Preberite, kaj je napisano
  • "Vse besedilo"
  • Ko je črta napisana V datoteki Python 3.0 vrne število vnesenih znakov. To se v prejšnji različici ni zgodilo. V primeru smo uporabili znak konca n. Brez tega metoda pisanja zapiše celotno besedilo.
    Če želite prebrati vsebino datoteke, ne da bi ob koncu nakazali n, uporabite read:
  • print (open ("first_file.txt"). Read ())
  • katero koli besedilo;
  • in ponovno besedilo;
  • Vsako vrstico po vrsti si lahko ogledate z njeno ponovitvijo:
  • za x in open ("first_file.txt"):
  • print (x, end = "")
  • - katero besedilo
  • in ponovno besedilo # Vsaka nova vrstica bo zamaknjena.
  • Shranjevanje osnovnih objektov Python jezika

    V tekstovno datoteko lahko shranite vgrajene ali ročno izdelane objekte. Za zaporedno zapisovanje datotek v Pythonu je treba vsak element predhodno pretvoriti v vrstico. Prav tako ne pozabite, da metode ne oblikujejo podatkov.
  • Primer_2 = odprto ("second_file.txt", "w")
  • Seznam = [1,8, "r"]
  • C, B, P = 349056
  • Primer_2.write (str (Seznam) + "n")
  • 12
  • Primer_2.write («% s,% s,% sn »% [C, B, P])
  • 11
  • Primer_2.pisanje (Stran +« n »)
  • 15
  • Primer_2.close ()
  • print (odprto ("second_file.txt") read ())
  • [1, 8, r]
  • 349056
  • ]
  • nabor znakov
  • V tem primeru je najprej ustvarjen nov datotečni objekt "second_file.txt" za pisanje. Petim imenom je dodeljena vrednost seznama, niza in celih števil. Pred snemanjem se vsak objekt pretvori v niz. Na koncu se datoteka odpre s pomočjo vgrajene funkcije tiskanja in metode branja.

    Po istem načelu Python zapisuje vnos v slovar. Pokličite funkcijo str in jo posredujte kot argument argumenta. Najtežja stvar je, da ne shranite podatkov, ampak jih dobite in pretvorite nazaj v slovarje ali številke. Pretvorba niza v objekte jezika bo pomagala pri metodi readline:
  • L = open ("second_file.txt")
  • F = L. readline ()
  • F
  • "349056n".
  • Številke = [int (x) za x v številkah] # Pretvori vse seznam
  • Številke
  • [34, 90, 56]
  • Predmeti s posebnimi moduli

    Standardna knjižnica vključuje modul, imenovan pickle. To je izjemno uporabno orodje za snemanje in pridobivanje informacij. Še posebej, če ne zaupate v vir datoteke. Modul je vsestranski pripomoček, ki samodejno formatira in pretvarja podatke. Za pisanje predmeta katere koli vrste (slovarja) je dovolj, da ga prenesemo v škripci:
  • Slovar = {«osem»: 8 «tri»: 3 «nič»: 0}
  • Slovar
  • {«osem»: 8 «tri»: 3 «nič»: 0}
  • dokument = odprto («мойдокумент.pkl», «wb»)
  • uvozni trs
  • ]
  • roosol.dump (slovar, dokument)
  • document.close ()
  • document = open ("moj dokument.pkl", "rb")
  • D = pickle.load (dokument)
  • D
  • 92) {"osem": 8 "tri": 3 "nič": 0}Pri modulu ni potrebe, da bi ročno izvlekli in pretvorili podatke. Sam izvede seriozacijo objektov v vrsti bajtov in nazaj. V ta namen je v odprtih argumentih podana binarna datoteka wb-write. Podobno kot pri škripcih lahko podatke shranite tudi z uporabo Python modula - JSON. Snemanje v datoteko poteka po metodi izpisa. Argumenti vključujejo shranjene objekte, ki se samodejno serijsko pretvorijo v niz JSON-formata.
  • import json
  • slovar = {«osem»: 8 «tri»: 3 «nič»: 0}
  • z odprto («moj dokument.json», «w») kot m_d:
  • json.dump (Slovar, m_d)
  • Obstaja bolj zapleten način dela z datotekami. Na primer, postopek skeniranja, organizacija ciklov snemanja. Če si želite ogledati celoten seznam metod, uporabite funkcije pomoči ali funkcije v interaktivni seji. Tudi v arzenalu jezikov obstajajo objekti, ki so podobni datotekam - vtičnice, lupine in I /O tokovi.

    Sorodne publikacije