Python je nevjerojatan programski jezik za većinu zadataka, kao što su web razvoj, AI, automatizacija ili opće programiranje. Rad s datotekama i mapama važan je jer ih moramo koristiti za automatizaciju zadataka ili pohranu podataka i razne druge slične zadatke.
Za rad s datotekama posebnog formata, kao što su slikovne datoteke, JSON datoteke, PDF, CSV datoteke ili datoteke baza podataka, python ima nevjerojatne module napisane od sjajnih programera kako bi naš zadatak bio lakši. Možete provjeriti naš korak po korak vodič o radu s datotekama SQL baze podataka pomoću pythona pomoću kojeg možete naučiti SQLite, što je sjajan način za pohranu i preuzimanje podataka programa python.
Prije nego što započnemo, prvo moramo instalirati python u sustav. Ako ga nemate instaliran, možete vidjeti naš vodič za instaliranje pythona.
Rad s datotekama u Pythonu
Datoteke su važan dio našeg svakodnevnog posla. Za mnoge zadatke koristimo PDF datoteke, Excel datoteke ili uobičajene tekstualne datoteke. Vodiči koje čitate na ovom web mjestu nalaze se u HTML datoteci koju vaš preglednik obrađuje. Kao i mnogi drugi programski jezici, Python također podržava rukovanje datotekama.
Otvaranje i zatvaranje datoteka
Datoteku možemo lako otvoriti u pythonu pomoću ugrađene funkcije open (). Funkcija open prihvaća mnogo argumenata, ali glavni traženi argument je put do datoteke koju želimo otvoriti. Funkcija open () ima jedan povratak, a to je objekt datoteke.
file_obj = open ("naziv datoteke.txt ")
Kôd će otvoriti datoteku pod nazivom „ime datoteke.txt ", tekstualna datoteka koja se nalazi u istoj mapi. Tada će pohraniti povratni objekt datoteke u varijablu file_obj.
Kad završimo svu obradu s datotekom, moramo se sjetiti zatvaranja datoteke. Datoteka se u mnogim slučajevima zatvara nakon prekida programa, ali dobro je zatvoriti je funkcijom close () kad god nam ne treba. Ako zaboravimo zatvoriti datoteku, ona će jednostavno potrošiti memoriju, što će usporiti program. Smatra se lošom praksom za veće projekte.
Da bismo zatvorili otvorenu datoteku, trebamo koristiti funkciju close () objekta datoteke.
# ovdje ćemo otvoriti naziv datoteke.txt file_obj = open ("naziv datoteke.txt ") print (" Datoteka je uspješno otvorena ... ") # Sada možemo obaviti obradu s datotekom # Nakon obrade moramo zatvoriti datoteku file_obj.close () print ("Datoteka je zatvorena ...")
Otvorili smo datoteku s imenom naziv datoteke.txt u istoj mapi pomoću funkcije open (), a zatim je zatvorio pomoću funkcije close ().
Izlaz:
Iako je funkcija close () korisna za zatvaranje datoteke, postoji još jedan način za zatvaranje datoteke, tj.e., otvaranjem datoteke pomoću s Izjava.
Primjer:
s otvorenim ("naziv datoteke.txt ") kao file_obj: # Ovdje idu operacije datoteka
Kôd će automatski zatvoriti datoteku nakon što izađemo iz s blok. Izjava with također zatvara datoteku ako će doći do greške, pa je bolje upotrijebiti with s izjavom jer možemo zatvoriti datoteku i s njom lako rješavati pogreške datoteke.
Načini otvaranja datoteke
Iako se funkcija open () može koristiti samo s jednim argumentom, tj.e., put datoteke, možemo koristiti i drugi argument imenovan način rada. Označava način koji se koristi za otvaranje datoteke.
Na primjer, ako datoteku želimo otvoriti samo za čitanje i ne želimo je uređivati, način rada 'r' možemo koristiti kao argument funkcije open (), što znači način samo za čitanje. Ovo je ujedno i zadani način rada open (). Za pisanje ili izmjenu datoteke, datoteku moramo otvoriti u načinu pisanja koristeći 'w' kao argument.
Primjer:
s otvorenim ("naziv datoteke.txt ", w"): # Ovdje idu izjave # koje će se izvoditi na datoteci
Ovaj će kôd otvoriti datoteku u načinu pisanja, tako da možete izvršavati operacije pisanja na datoteci.
Mogu biti i situacije kada želimo otvoriti datoteku u binarnom načinu kako bismo na njoj izveli neku operaciju. Da bismo to učinili, moramo mod "rb" za čitanje u binarnom načinu i "wb" za pisanje u binarnom načinu.
Primjer:
s otvorenim ("naziv datoteke.dat "," rb "): # Ovdje idu izrazi # koji se izvode na binarnoj datoteci
Otvorit će podatkovnu datoteku pod nazivom filename.dat u binarnom načinu rada samo za čitanje.
Do sada smo naučili kako otvoriti datoteku i zatvoriti je. Sada da vidimo kako možemo čitati podatke iz datoteke pomoću Pythona.
Čitanje datoteka pomoću Pythona
Postoji mnogo načina na koje možemo čitati podatke iz otvorene datoteke u pythonu, ali najčešći je način pomoću funkcija read (), readline () i readlines ().
Funkcija čitanja ()
Kao argument prihvaća broj bajtova koji se čita iz datoteke i čita tu količinu bajtova iz datoteke.
Ako ne pružimo nijedan argument ili ne koristimo None ili -1 kao argument funkcije read (), tada će se čitava datoteka čitati u načinu samo za čitanje.
Primjer:
s otvorenim ("naziv datoteke.txt ") kao file_obj: # pomoću funkcije read () za čitanje bajtova # iz datoteke objekt riječi = file_obj.read () print (riječi)
Izlaz:
Možda ćete trebati stvoriti uzorak datoteke.txt s demo sadržajem ili navedite druge datoteke u argumentu funkcije open () prije pokretanja programa; Inače, python će baciti FileNotFoundError kao što je prikazano dolje.
Traceback (najnoviji zadnji poziv): Datoteka "datoteka.py ", redak 1, u s open (" naziv datoteke.txt ") kao file_obj: FileNotFoundError: [Errno 2] Nema takve datoteke ili direktorija: 'naziv datoteke.txt '
Funkcija read () nevjerojatan je način čitanja bajtova iz datoteke, ali postoji više načina za čitanje podataka iz datoteke. Uglavnom postoje dvije druge metode za čitanje podataka iz datoteke. Oni su metode readline () i readlines ().
Funkcija readline ()
Funkcija readline () koristi se za čitanje retka odjednom. Svaki put kad ga pokrenemo, dobit ćemo sljedeći redak datoteke.
Primjer:
s otvorenim ("naziv datoteke.txt "," r ") kao fileobj: ispis (fileobj.readline ()) # ispis ispisa prvog retka (fileobj.readline ()) # ispisuje drugi redak
Izlaz: Ispisat ćemo prvi i drugi redak datoteke.
Također možemo proslijediti broj znakova za čitanje iz retka kao argument funkciji readline ().
Primjer:
s otvorenim ("naziv datoteke.txt "," r ") kao fileobj: ispis (fileobj.readline (15)) # ispisuje prvih 15 bajtova
Izlaz:
Funkcija readlines ()
Funkcija readlines () koristi se za čitanje svih redaka datoteke. Ova će funkcija vratiti popis svih redaka prisutnih u datoteci. Ako ne trebamo pokretati sve retke, tada kao argument možemo odrediti i broj redaka koji nam trebaju.
Primjer:
s otvorenim ("naziv datoteke.txt "," r ") kao fileobj: ispis (fileobj.readlines ()) # vraća popis svih redaka
Izlaz:
Pisanje datoteka pomoću Pythona
Da bismo podatke zapisali u datoteku pomoću pythona, trebamo koristiti metodu write () objekta datoteke. Funkcija pisanja prihvaća podatke kao argument koji želimo upisati u datoteku.
Primjer:
line = "Ovo je novi redak \ n" s open ("naziv datoteke.txt "," w ") kao fileobj: ispis (fileobj.napiši (redak))
Pri pokretanju koda, svi naziv datoteke.txt podaci će biti zamijenjeni nizom "Ovo je novi redak". Ako nemate naziv datoteke.txt datoteka koja je prethodno bila prisutna, tada će je stvoriti.
Dodavanje datoteka
Tijekom pisanja datoteke kao što smo to radili u prethodnom kodu, mogli biste primijetiti da novi podaci zamjenjuju sve prethodne podatke koji su prisutni u datoteci. Ponekad se od nas traži da dodamo nove podatke umjesto da ih prepisujemo. Moramo otvoriti datoteku pomoću načina "a", a zatim upotrijebiti funkciju write () za upisivanje podataka.
Primjer:
line = "\ nOvo je novi redak" s open ("naziv datoteke.txt "," a ") kao fileobj: ispis (fileobj.napiši (redak))
Imat ćemo novi redak zapisan u nazivu datoteke.txt bez zamjene prethodnih redaka prilikom izvođenja koda.
Preimenovanje i brisanje datoteka
Da bismo preimenovali datoteku, trebamo koristiti funkciju preimenovanja () os modula. Funkcija preimenovanja prihvaća dva važna argumenta, prvi argument je put do datoteke koju želimo preimenovati, a drugi argument je novo ime izvorne datoteke.
Primjer:
uvoz os os.preimenovati ("datoteka1.txt, datoteka2.txt ")
Kôd će preimenovati datoteku datoteka1.txt s imenom datoteka2.txt.
Da bismo datoteku izbrisali pomoću pythona, trebamo upotrijebiti ukloniti() funkcija os modul.
Primjer:
uvoz os os.remove ("uzorak.txt ")
Ovo će izbrisati datoteku uzorak.txt prisutan u trenutnom direktoriju. Također možete dati putanju datoteke ako je ona prisutna u drugim direktorijima. Ako datoteka ne postoji u zadanom putu, dobit ćemo FileNotFoundError. Za rješavanje pogrešaka koristite metodu rukovanja iznimkama navedenu u prethodnoj podtemi.
Zaključak
U ovom uputstvu naučili smo sve što je potrebno za rad s datotekama u pythonu, kao što je stvaranje datoteka, čitanje podataka iz datoteka, pisanje podataka u datoteke, uklanjanje i preimenovanje datoteka itd.
Također se možete obratiti našem vodiču korak po korak o radu s SQLite bazom podataka na pythonu, gdje možete naučiti sve što trebate znati tijekom rada s SQLite bazama podataka u pythonu.