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.