Kako čitati i pisati datoteke u Pythonu
Kada programirate u Python jeziku izvan najtrivijalnijih programa, obično ćete morati čitati podatke i pisati podatke u datoteke koje postoje izvan samog programa. Python pruža jednostavne mehanizme za pristup i izmjenu određenih datoteka pomoću standardnih funkcija koje su dio temeljnog jezika.
Otvaranje datoteka u Pythonu
1. korak
Odlučite o politici korištenja. Morate znati trebate li čitati iz datoteke ili pisati u datoteku prije nego što otvorite datoteku. Datoteku otvarajte samo s dopuštenjima koja su vam stvarno potrebna i ne otvarajte datoteku u načinu rada za čitanje i pisanje kada iz nje trebate samo čitati. Ovo će spriječiti slučajna pisanja u datoteku u koju ne biste trebali pisati.
2. korak
Odlučite hoćete li koristiti ASCII ili binarni način rada. Ako čitate tekst, trebali biste koristiti ASCII način. Ako čitate binarne podatke, koristite binarni način rada. Ovaj način će prevesti završetke redaka u način rada koji koristi vaš operativni sustav.
3. korak
Stvorite niz načina. Prvi znak je način čitanja ili pisanja. Ako želite otvoriti u binarnom načinu, dodajte "b" na kraj niza. Na primjer, za čitanje u ASCII načinu, niz načina bio bi "r", a za pisanje u binarnom načinu, niz načina bio bi "wb".
4. korak
Otvorite datoteku pomoću funkcije otvaranja. Pohranite rezultirajući objekt datoteke u varijablu. Na primjer:
f =open("/filename/goes/here", "r")
Čitanje iz datoteka u Pythonu
1. korak
Iterirajte kroz sve retke. Datotečni objekt može se koristiti kao kolekcija s "for" petljom. Možete iterirati po svim recima u datoteci (uobičajena radnja) s for naredbom.
za liniju u f:ispis linije
2. korak
Traži do određene točke u datoteci. Datoteke se ne čitaju uvijek uzastopno pa je često potrebno tražiti određenu točku u datoteci prije čitanja iz datoteke. To možete učiniti pomoću metode traženja datotečnog objekta.
Traži do 100. bajta f.seek(100)
Traži do 10 bajtova od trenutnog bajta f.seek(10, 1)
3. korak
Čitanje binarnih podataka iz datoteke. Koristeći metodu čitanja datotečnog objekta, možete pročitati proizvoljan broj bajtova iz datoteke.
Pročitati 16 bajtova iz datoteke buf =f.read(16)
Pisanje u Python datoteke
1. korak
Zapišite podatke u datoteku. Ako je datoteka otvorena u načinu pisanja, u nju možete pisati ASCII ili binarne podatke. To se radi metodom pisanja datotečnog objekta.
f.write("Ovo je neki tekst")
2. korak
Zapišite objekte u datoteku. Ako trebate spremiti unutarnje stanje objekta, možete ga "ukiseliti". Za kiseljenje objekta prvo morate uvesti modul pickle. Nakon toga možete kiseliti gotovo bilo koji objekt s funkcijom pickle.dump.
import turšija pickle.dump(any_object,f)
3. korak
Zatvorite datoteku. Nakon završetka pisanja, morate zatvoriti datoteku. Ovo osigurava da su svi međuspremnici isprani i da datoteka nije zaključana tako da joj drugi programi mogu pristupiti. To se radi pomoću metode zatvaranja objekta datoteke.
f.close()