Otvaranje i zatvaranje datoteke
Za čitanje podataka iz tekstualne datoteke naziva „podaci.txt ”, trebate koristiti metodu„ open ”koja dolazi sa službenim Python gradnjama. U nastavku provjerite uzorak koda:
f = open ('podaci.txt ',' r ')f.Zatvoriti()
Prva izjava otvara „podatke.txt ”u načinu“ r ”(samo za čitanje). Metoda "open" prihvaća naziv datoteke i način rada s datotekom kao argumente. Osim načina "r", postoje i drugi načini koji će biti objašnjeni kasnije. Isječak koda gore ne pokreće nikakve radnje na otvorenoj datoteci. Metoda "zatvori" koristi se za čisto zatvaranje otvorene datoteke kako bi se oslobodila memorija i kako bi se izbjegla oštećenja podataka u otvorenoj datoteci koja se ponekad može dogoditi ako datoteka nije pravilno zatvorena.
Umjesto da koristite metodu „open“ za rukovanje otvaranjem i zatvaranjem datoteka, možete je kombinirati s ključnom riječi „with“ i koristiti izraz „with open“.
s otvorenim ('podacima.txt ',' r ') kao f:proći
Glavna prednost korištenja naredbe "s otvorenim" je u tome što tumač automatski zatvara otvorenu datoteku kada je blok koda "s otvorenim" potpuno raščlanjen. Iako sakupljač smeća u Pythonu automatski zatvara otvorene datoteke nakon nekog vremena prema unaprijed zadanim pravilima, "s otvorenim" izjavama osigurava da se datoteka čisto zatvori čim blok koda završi kako bi se oslobodili resursi.
Čitanje linija tekstualne datoteke
Da biste pročitali sadržaj datoteke, upotrijebite donji uzorak koda:
s otvorenim ('podacima.txt ',' r ') kao f:podaci = f.čitati()
ispis (podaci)
Na primjer, ako „podaci.txt ”datoteka ima 1-10 brojeva, svaki u novom retku, dobit ćete sljedeći izlaz nakon pokretanja gornjeg koda:
12
3
4
5
6
7
8
9
10
Cjelokupno odlagalište podataka „podataka.txt ”datoteka pohranjena je u varijabli„ data ”. Ako želite pročitati retke na popisu, možete koristiti sljedeće uzorke koda:
s otvorenim ('podacima.txt ',' r ') kao f:podaci = f.redovi za čitanje ()
ispis (podaci) s otvorenim ('podaci.txt ',' r ') kao f:
podaci = popis (f)
ispis (podaci)
Imajte na umu da vam upotreba gornjih isječaka može donijeti znak "\ n" (novi red) na kraju svakog elementa na popisu. Da biste uklonili ove znakove novog reda, možda ćete morati proći kroz popis. Možete i stvoriti novi popis i ukloniti znakove iz novog retka pomoću sljedećeg koda:
popis podataka = []s otvorenim ('podacima.txt ',' r ') kao f:
za redak u f:
popis podataka.dodati (redak.traka())
ispis (popis podataka)
Pokretanjem gornjeg koda dobit ćete sljedeći izlaz:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Zapisivanje podataka u otvorenu datoteku
Da biste zapisali podatke u datoteku koja se otvara pomoću izraza „s otvorenim“, morat ćete navesti drugačiji način otvaranja kao argument. Evo nekoliko načina:
- 'a' - koristi se za dodavanje podataka na kraju otvorene datoteke, stvara novu datoteku ako ona ne postoji
- 'w' - briše sadržaj otvorene datoteke i zapisuje nove podatke, stvara novu datoteku ako ona ne postoji
- 'r' - način samo za čitanje (zadani način rada ako nije naveden nijedan argument)
- 'r +' - koristi se i za čitanje i za pisanje (početni položaj je na početku datoteke)
- 'b' - datoteka se otvara u binarnom načinu (korisno za netekstualne binarne datoteke), može se kombinirati s drugim načinima
- 'a +' - koristi se za čitanje i dodavanje, stvara novu datoteku ako ne postoji
- 'w +' - koristi se za čitanje i pisanje, stvara novu datoteku ako ne postoji
Neki isječci koda koji koriste različite načine za upisivanje podataka navedeni su u nastavku.
Da biste napisali novi sadržaj u tekstualnu datoteku dok brišete postojeće podatke, upotrijebite sljedeći uzorak:
s otvorenim ('podacima.txt ',' w ') kao f:f.napiši ("1 \ n2")
Nakon pokretanja gornjeg isječka, 1-10 brojeva u „podacima.txt ”datoteku treba zamijeniti s dva nova retka.
Da biste dodali retke na početak tekstualne datoteke, trebate koristiti metodu "traži" za povratak na početni položaj međuspremnika datoteke:
s otvorenim ('podacima.txt ',' r + ') kao f:podaci = f.čitati()
f.tražiti (0)
f.napiši ("- 1 \ n0 \ n")
f.pisanje (podaci)
Nakon pokretanja gornjeg isječka, brojevi -1 i 0 bit će dodani u gornja dva retka u “podacima.txt ”datoteke.
Da biste dodali podatke na kraj datoteke, upotrijebite sljedeći uzorak:
s otvorenim ('podacima.txt ',' a ') kao f:f.napiši ("11 \ n12")
Nakon pokretanja gornjeg isječka, 11 i 12 brojeva dodati će se na kraj datoteke.
Zaključak
Ugrađene klase i metode u Pythonu pružaju robustan način za rukovanje tekstualnim datotekama. Sa samo nekoliko redaka koda možete manipulirati postojećim podacima u datoteci, kao i umetnuti nove retke.