python file handling tutorial
Intenzivan pogled na operacije rukovanja datotekama Python s praktičnim primjerima:
U seriji Python tutorial za početnike , saznali smo više o Python string funkcije u našem zadnjem tutorialu.
Python nam pruža važnu značajku za čitanje podataka iz datoteke i upisivanje podataka u datoteku.
U programskim jezicima uglavnom su sve vrijednosti ili podaci pohranjeni u nekim varijablama koje su po svojoj prirodi nestalne.
Budući da će se podaci pohraniti u te varijable samo tijekom vremena izvođenja i izgubit će se kad se izvrši izvršavanje programa. Stoga je bolje te podatke trajno spremiti pomoću datoteka.
Što ćete naučiti:
- Kako Python obrađuje datoteke?
- Vrste datoteka u Pythonu
- Python operacije rukovanja datotekama
- Kodiranje u datotekama
- Zapisivanje i čitanje podataka iz binarne datoteke
- Atributi I / O datoteke
- Metode datoteke Python
- Sažetak
- Preporučena literatura
Kako Python obrađuje datoteke ?
Ako radite u velikoj softverskoj aplikaciji u kojoj obrađuju velik broj podataka, ne možemo očekivati da će se ti podaci pohraniti u varijablu jer su varijable hlapljive prirode.
Stoga, kada ćete se nositi s takvim situacijama, uloga datoteka će se pojaviti u slici.
Budući da su datoteke nepromjenjive prirode, podaci će se trajno čuvati na sekundarnom uređaju poput tvrdog diska i pomoću pythona obrađivat ćemo te datoteke u našim aplikacijama.
Razmišljate li o tome kako će python rukovati datotekama?
Uzmimo Primjer o tome kako će normalni ljudi postupati s datotekama. Ako želimo pročitati podatke iz datoteke ili ih zapisati u datoteku, tada ćemo, prije svega, otvoriti datoteku ili ćemo stvoriti novu datoteku ako datoteka ne postoji, a zatim izvršiti uobičajene operacije čitanja / pisanja , spremite datoteku i zatvorite je.
Slično tome, radimo iste operacije u pythonu koristeći neke ugrađene metode ili funkcije.
Vrste datoteka u Pythonu
U Pythonu postoje dvije vrste datoteka i svaka od njih je detaljno objašnjena u nastavku s primjerima za vaše lako razumijevanje.
Oni su:
- Binarna datoteka
- Tekstualna datoteka
Binarne datoteke u Pythonu
Većina datoteka koje vidimo u našem računalnom sustavu nazivaju se binarne datoteke.
Primjer:
- Datoteke dokumenata: .pdf, .doc, .xls itd.
- Slikovne datoteke: .png, .jpg, .gif, .bmp itd.
- Video datoteke: .mp4, .3gp, .mkv, .avi itd.
- Audio datoteke: .mp3, .wav, .mka, .aac itd.
- Datoteke baze podataka: .mdb, .accde, .frm, .sqlite itd.
- Arhiviraj datoteke: .zip, .rar, .iso, .7z itd.
- Izvršne datoteke: .exe, .dll, .class itd.
Preporučena literatura = >> Kako otvoriti .7z datoteku
Sve binarne datoteke slijede određeni format. Neke binarne datoteke možemo otvoriti u uobičajenom uređivaču teksta, ali ne možemo pročitati sadržaj koji se nalazi u datoteci. To je zato što će sve binarne datoteke biti kodirane u binarnom formatu, koji može razumjeti samo računalo ili stroj.
Za rukovanje takvim binarnim datotekama potreban nam je određeni tip softvera koji će ga otvoriti.
Na primjer, Za otvaranje binarnih datoteka .doc potreban vam je softver Microsoft word. Isto tako, potreban vam je program za čitanje PDF-a da biste otvorili binarne datoteke .pdf, a potreban vam je softver za uređivanje fotografija da biste čitali slikovne datoteke i tako dalje.
Tekstualne datoteke na Pythonu
Tekstualne datoteke nemaju određeno kodiranje i mogu se otvoriti u samom normalnom uređivaču teksta.
Primjer:
- Web standardi: html, XML, CSS, JSON itd.
- Izvorni kod: c, app, js, py, java itd.
- Dokumenti: txt, tex, RTF itd.
- Tablični podaci: csv, tsv itd.
- Konfiguracija: ini, cfg, reg itd.
U ovom uputstvu vidjet ćemo kako rukovati tekstom kao i binarnim datotekama s nekoliko klasičnih primjera.
Python operacije rukovanja datotekama
Najvažnije je da postoje 4 vrste operacija kojima se Python može baviti nad datotekama:
- Otvoren
- Čitati
- Pisati
- Zatvoriti
Ostale operacije uključuju:
- Preimenovati
- Izbrisati
Python Stvaranje i otvaranje datoteke
Python ima ugrađenu funkciju koja se naziva open () za otvaranje datoteke.
Potreban je najmanje jedan argument kako je spomenuto u donjoj sintaksi. Otvorena metoda vraća objekt datoteke koji se koristi za pristup metodama pisanja, čitanja i drugim ugrađenim metodama.
Sintaksa:
file_object = open(file_name, mode)
Ovdje je ime_datoteke naziv datoteke ili mjesto datoteke koju želite otvoriti, a naziv_datoteke trebao bi sadržavati i ekstenziju datoteke. Što znači u test.txt - pojam test naziv je datoteke, a .txt je nastavak datoteke.
Način u sintaksi otvorene funkcije reći će Pythonu koju operaciju želite napraviti nad datotekom.
- ‘R’ - način čitanja: Način čitanja koristi se samo za čitanje podataka iz datoteke.
- ‘W’ - Način pisanja: Ovaj se način koristi kada želite zapisati podatke u datoteku ili je izmijeniti. Zapamtite, način pisanja prepisuje podatke prisutne u datoteci.
- 'A' - način dodavanja: Način dodavanja koristi se za dodavanje podataka u datoteku. Zapamtite da će podaci biti dodani na kraj pokazivača datoteke.
- ‘R +’ - način čitanja ili pisanja: Ovaj se način koristi kada želimo pisati ili čitati podatke iz iste datoteke.
- ‘A +’ - dodavanje ili način čitanja: Ovaj se način koristi kada želimo čitati podatke iz datoteke ili ih dodati u istu datoteku.
Bilješka: Gore navedeni načini namijenjeni su samo otvaranju, čitanju ili pisanju tekstualnih datoteka.
Dok koristimo binarne datoteke, moramo koristiti iste načine rada sa slovom 'B' na kraju. Tako da Python može razumjeti da smo u interakciji s binarnim datotekama.
- 'Wb' - Otvorite datoteku za način samo pisanja u binarnom formatu.
- 'Rb' - Otvorite datoteku za način samo za čitanje u binarnom formatu.
- 'Od' - Otvorite datoteku za dodavanje samo načina u binarnom formatu.
- ‘Rb +’ - Otvorite datoteku za način samo za čitanje i pisanje u binarnom formatu.
- ‘Od +’ - Otvorite datoteku za dodavanje i način samo za čitanje u binarnom formatu.
Primjer 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)
U gornjem primjeru otvaramo datoteku pod nazivom 'test.txt' prisutnu na mjestu 'C: / Documents / Python /' i otvaramo istu datoteku u načinu čitanja i pisanja što nam daje veću fleksibilnost.
Primjer 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)
U gornjem primjeru otvaramo datoteku nazvanu ‘img.bmp’ prisutnu na mjestu “C: / Documents / Python /”, ali ovdje pokušavamo otvoriti binarnu datoteku.
Python čita iz datoteke
Da bismo datoteku pročitali u pythonu, moramo je otvoriti u načinu čitanja.
Postoje tri načina na koje možemo čitati datoteke na pythonu.
- pročitati ((n))
- linija za čitanje ((n))
- redovi za čitanje ()
Ovdje je n broj bajtova za čitanje.
Prvo stvorimo oglednu tekstualnu datoteku kao što je prikazano u nastavku.
Sada ćemo promatrati što čini svaka metoda čitanja:
Primjer 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))
Izlaz:
zdravo
Ovdje otvaramo datoteku test.txt u načinu samo za čitanje i čitamo samo prvih 5 znakova datoteke metodom my_file.read (5).
Izlaz:
Primjer 2:
koji je najbolji softver za uklanjanje virusa
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())
Izlaz:
Pozdrav svijete
Pozdrav Python
Dobro jutro
Ovdje nismo naveli nijedan argument unutar funkcije read (). Stoga će pročitati sav sadržaj koji se nalazi u datoteci.
Izlaz:
Primjer 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))
Izlaz:
On
Ova funkcija vraća prva 2 znaka sljedećeg retka.
Izlaz:
Primjer 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())
Izlaz:
Pozdrav svijete
Korištenjem ove funkcije možemo čitati sadržaj datoteke po redovima.
Izlaz:
Primjer 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())
Izlaz:
(„Pozdrav svijetu n“, „Pozdrav Python n“, „Dobro jutro“)
Ovdje čitamo sve retke prisutne unutar tekstualne datoteke, uključujući znakove novog retka.
Izlaz:
Pogledajmo sada još nekoliko praktičnih primjera čitanja datoteke.
Čitanje određenog retka iz datoteke
line_number = 4 fo = open(“C:/Documents/Python/test.txt”, ’r’) currentline = 1 for line in fo: if(currentline == line_number): print(line) break currentline = currentline +1
Izlaz:
Kako si
U gornjem primjeru pokušavamo pročitati samo 4thredak iz datoteke ‘test.txt’ pomoću a 'Za petlju' .
Izlaz:
Čitanje cijele datoteke odjednom
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)
Izlaz:
Pozdrav svijete
Pozdrav Python
Dobro jutro
Kako si
Izlaz:
Python zapisivanje u datoteku
Da bismo podatke zapisali u datoteku, datoteku moramo otvoriti u načinu pisanja.
Moramo biti vrlo oprezni dok zapisujemo podatke u datoteku jer prepisuje sadržaj koji je prisutan u datoteci koju pišete i svi će se prethodni podaci izbrisati.
Imamo dvije metode za upisivanje podataka u datoteku kao što je prikazano u nastavku.
- pisati (niz)
- linije za pisanje (popis)
Primjer 1:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”)
Gornji kod zapisuje niz 'Hello World' u datoteku 'test.txt'.
Prije upisivanja podataka u datoteku test.txt:
Izlaz:
Primjer 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)
Prvi redak bit će ‘Hello World’, a kao što smo spomenuli n znak, kursor će se pomaknuti na sljedeći redak datoteke i zatim napisati ‘Hello Python’.
kako pokrenuti json datoteku
Zapamtite ako ne spominjemo znak n, tada će se podaci kontinuirano upisivati u tekstualnu datoteku poput 'Hello WorldHelloPython'
Izlaz:
Primjer 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)
Gornji kod piše a popis podataka u datoteku ‘test.txt’ istovremeno.
Izlaz:
Python Dodati u datoteku
Da bismo dodali podatke u datoteku, datoteku moramo otvoriti u načinu 'a +', tako da ćemo imati pristup i načinima dodavanja i načinu pisanja.
Primjer 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)
Gornji kod dodaje niz 'Apple' na kraj datoteke ‘test.txt’.
Izlaz:
Primjer 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)
Gornji kod dodaje niz 'Apple' na kraju datoteke 'test.txt' u novom retku .
Izlaz:
Primjer 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)
Gornji kod dodaje popis podataka u datoteku ‘test.txt’.
Izlaz:
Primjer 4:
text=('
Hello','
Hi','
Python') my_file=open('C:/Documents/Python/test.txt',mode='a+') my_file.writelines(text) print('where the file cursor is:',my_file.tell()) my_file.seek(0) for line in my_file: print(line)
U gornji kod dodajemo popis podataka u datoteku ‘test.txt’. Ovdje možete primijetiti da smo koristili metodu Tell () koja ispisuje mjesto na kojem se trenutno nalazi pokazivač.
tražiti (pomak): Pomak uzima tri vrste argumenata, naime 0,1 i 2.
Kada je pomak 0: Referenca će biti navedena na početku datoteke.
Kada je pomak 1: Referenca će biti usmjerena na trenutni položaj kursora.
Kada je pomak 2: Referenca će biti navedena na kraju datoteke.
Izlaz:
Python Zatvori datoteku
Da bismo datoteku zatvorili, prvo je moramo otvoriti. U pythonu imamo ugrađenu metodu koja se naziva close () za zatvaranje datoteke koja se otvori.
Kad god otvorite datoteku, važno je da je zatvorite, posebno metodom pisanja. Jer ako ne pozovemo funkciju zatvaranja nakon metode pisanja, bilo koji podaci koje smo zapisali u datoteku neće se spremiti u datoteku.
Primjer 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) my_file.close()
Primjer 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”) my_file.close()
Python Preimenuj ili izbriši datoteku
Python nam pruža 'os' modul koji ima neke ugrađene metode koje bi nam pomogle u izvođenju operacija datoteke, kao što je preimenovanje i brisanje datoteke.
Da bismo koristili ovaj modul, prije svega, moramo u svoj program uvesti modul „os“, a zatim pozvati povezane metode.
metoda preimenovanja ():
Ova metoda preimenovanja () prihvaća dva argumenta, tj. Trenutno ime datoteke i novo ime datoteke.
Sintaksa:
os.rename(current_file_name, new_file_name)
Primjer 1:
import os os.rename(“test.txt”, “test1.txt”)
Ovdje je 'test.txt' trenutno ime datoteke, a 'test1.txt' je novo ime datoteke.
Možete odrediti mjesto kao što je prikazano u donjem primjeru.
Primjer 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”)
Prije preimenovanja datoteke:
Nakon izvršavanja gornjeg programa
metoda uklanjanja ():
Koristimo metodu remove () za brisanje datoteke davanjem imena datoteke ili mjesta na kojem želite izbrisati datoteku.
Sintaksa:
os.remove(file_name)
Primjer 1:
import os os.remove(“test.txt”)
Ovdje je 'test.txt' datoteka koju želite ukloniti.
Slično tome, lokaciju datoteke možemo proslijediti i argumentima kao što je prikazano u donjem primjeru
Primjer 2:
import os os.remove(“C:/Documents/Python/test.txt”)
Kodiranje u datotekama
Kodiranje datoteka predstavlja pretvaranje znakova u određeni format koji samo stroj može razumjeti.
Različiti strojevi imaju različit format kodiranja kao što je prikazano u nastavku.
- Microsoft Windows OS koristi ‘Cp1252’ format kodiranja prema zadanim postavkama.
- Linux ili Unix OS koristi 'Utf-8' format kodiranja prema zadanim postavkama.
- Appleov MAC OS koristi 'Utf-8' ili 'utf-16' format kodiranja prema zadanim postavkama.
Pogledajmo operaciju kodiranja s nekoliko primjera.
Primjer 1:
my_file = open(“C:/Documents/Python/test.txt”, mode=”r”) print(“Microsoft Windows encoding format by default is:”, my_file.encoding) my_file.close()
Izlaz:
Format kodiranja Microsoft Windows prema zadanim je postavkama cp1252.
Ovdje sam izvršio svoj program na Windows stroju, pa je tiskao zadano kodiranje kao 'cp1252'.
Izlaz:
pitanja i odgovori za dizajn baze podataka
Također možemo promijeniti format kodiranja datoteke prosljeđujući je kao argumente funkciji open.
Primjer 2:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”cp437”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Izlaz:
Format kodiranja datoteke je: cp437
Izlaz:
Primjer 3:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”utf-16”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Izlaz:
Format kodiranja datoteke je: utf-16
Izlaz:
Zapisivanje i čitanje podataka iz binarne datoteke
Binarne datoteke pohranjuju podatke u binarnom formatu (0 i 1) što je stroj razumljivo. Dakle, kada otvorimo binarnu datoteku u našem stroju, ona dekodira podatke i prikazuje se u čitljivom formatu.
Primjer:
# Stvorimo neku binarnu datoteku.
my_file = open(“C:/Documents/Python/bfile.bin”, “wb+”) message = “Hello Python” file_encode = message.encode(“ASCII”) my_file.write(file_encode) my_file.seek(0) bdata = my_file.read() print(“Binary Data:”, bdata) ntext = bdata.decode(“ASCII”) print(“Normal data:”, ntext)
U gornjem primjeru prvo stvaramo binarnu datoteku 'Bfile.bin' s pristupom za čitanje i pisanje i svi podaci koje želite unijeti u datoteku moraju se kodirati prije nego što pozovete metodu pisanja.
Također, podatke ispisujemo bez dekodiranja, kako bismo mogli promatrati kako podaci točno izgledaju unutar datoteke kada je kodirana, a iste podatke ispisujemo i dekodiranjem kako bi ih ljudi mogli pročitati.
Izlaz:
Binarni podaci: b’Hello Python ’
Uobičajeni podaci: Pozdrav Python
Izlaz:
Atributi I / O datoteke
Atribut | Opis |
---|---|
redovi za čitanje () | Čita i vraća sve retke iz datoteke |
Ime | Vratite ime datoteke |
Način rada | Način vraćanja datoteke |
Kodiranje | Vratite format kodiranja datoteke |
Zatvoreno | Vrati true ako datoteka zatvorena inače vraća false |
Primjer:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) print(“What is the file name? ”, my_file.name) print(“What is the file mode? ”, my_file.mode) print(“What is the encoding format? ”, my_file.encoding) print(“Is File closed? ”, my_file.closed) my_file.close() print(“Is File closed? ”, my_file.closed)
Izlaz:
Koji je naziv datoteke? C: /Documents/Python/test.txt
Što je način datoteke? r
Koji je format kodiranja? cp1252
Je li datoteka zatvorena? Lažno
Je li datoteka zatvorena? Pravi
Izlaz:
Isprobajmo nekoliko drugih metoda datoteke.
Primjer:
my_file = open(“C:/Documents/Python/test.txt”, “w+”) my_file.write(“Hello Python
Hello World
Good Morning”) my_file.seek(0) print(my_file.read()) print(“Is file readable: ?”, my_file.readable()) print(“Is file writeable: ?”, my_file.writable()) print(“File no:”, my_file.fileno()) my_file.close()
Izlaz:
Pozdrav Python
Pozdrav svijete
Dobro jutro
Je li datoteka čitljiva :? Pravi
Može li se datoteka zapisati :? Pravi
Spis broj: 3
Izlaz:
Metode datoteke Python
Funkcija | Obrazloženje |
---|---|
otvoren() | Da biste otvorili datoteku |
Zatvoriti() | Zatvorite otvorenu datoteku |
fileno () | Vraća cijeli broj datoteke |
čitati (n) | Čita ‘n’ znakova iz datoteke do kraja datoteke |
čitljiv() | Vraća true ako je datoteka čitljiva |
čitati () | Pročitajte i vratite jedan redak iz datoteke |
tražiti (offset) | Promijenite položaj kursora za bajtove kako je određeno pomakom |
vidljivo () | Vraća true ako datoteka podržava nasumični pristup |
reći() | Vraća trenutno mjesto datoteke |
za pisanje () | Vraća true ako je u datoteku moguće zapisati |
pisati() | U datoteku upisuje niz podataka |
linije za pisanje () | U datoteku upisuje popis podataka |
Pogledajmo o čemu smo do sada razgovarali u završnom programu.
Primjer:
my_file = open('C:/Documents/Python/test.txt', mode='w+') print('What is the file name? ', my_file.name) print('What is the mode of the file? ', my_file.mode) print('What is the encoding format?', my_file.encoding) text = ('Hello Python
', 'Good Morning
', 'Good Bye') my_file.writelines(text) print('Size of the file is:', my_file.__sizeof__()) print('Cursor position is at byte:', my_file.tell()) my_file.seek(0) print('Content of the file is:', my_file.read()) my_file.close() file = open('C:/Documents/Python/test.txt', mode='r') line_number = 3 current_line = 1 data = 0 for line in file: if current_line == line_number: data = line print('Data present at current line is:', data) break current_line = current_line + 1 bin_file = open('C:/Documents/Python/bfile.exe', mode='wb+') message_content = data.encode('utf-32') bin_file.write(message_content) bin_file.seek(0) bdata = bin_file.read() print('Binary Data is:', bdata) ndata = bdata.decode('utf-32') print('Normal Data is:', ndata) file.close() bin_file.close()
Izlaz:
Koji je naziv datoteke? C: /Documents/Python/test.txt
Koji je način rada datoteke? w +
Koji je format kodiranja? cp1252
Veličina datoteke je: 192
Položaj kursora je u bajtu: 36
Sadržaj datoteke je: Pozdrav Python
Dobro jutro
Doviđenja
Podaci prisutni na trenutnom retku su: Doviđenja
Binarni podaci su: b ' xff xfe x00 x00G x00 x00 x00o x00 x00 x00o x00 x00 x00d x00 x00 x00 x00 x00 x00B x00 x00 x00y x00 x00 x00e x00 x00 x00 ′
Uobičajeni podatak je: Zbogom
Izlaz:
Sažetak
U nastavku je navedeno nekoliko uputa koje se mogu sažeti iz gornjeg vodiča:
- Datoteku obično koristimo za trajno pohranjivanje podataka u sekundarnu pohranu, jer je ona nepostojane prirode, tako da se podaci mogu koristiti u budućnosti.
- Ponekad u nekim aplikacijama možda želimo pročitati podatke iz tekstualne datoteke ili binarne datoteke, pa to možemo postići pomoću ugrađenih funkcija u Pythonu poput metoda otvaranja, čitanja, pisanja itd.
- Morate biti vrlo oprezni dok upotrebljavate metodu pisanja, jer će se svi podaci koje upišete u datoteku prebrisati, a stari podaci izgubiti.
- Da biste spriječili prepisivanje podataka, bolje je otvoriti datoteku u načinu pisanja i dodavanja, tako da će podaci biti dodani na kraju datoteke.
- Zapamtite, kada datoteku otvorite u binarnom načinu, ona ne prihvaća parametar kodiranja.
- Možete izvršiti preimenovanje i brisanje datoteke pomoću metoda preimenovanja i uklanjanja iz 'os' modula / paketa.
Nadamo se da vam se svidio ovaj informativni vodič o rukovanju datotekama Python. Naš predstojeći vodič objasnit će više o glavnoj funkciji Pythona.
Preporučena literatura
- Ulaz-izlaz i datoteke u Pythonu (Python otvara, čita i piše u datoteku)
- Python DateTime Vodič s primjerima
- Vodič za Python za početnike (Praktični BESPLATNI trening za Python)
- Dubinski vodiči za pomračenje za početnike
- Python string funkcije
- Vodič za dijeljenje Python Stringa
- Python varijable
- Objekti datoteke VBScript: CopyFile, DeleteFile, OpenTextFile, čitanje i pisanje tekstualne datoteke