python file handling tutorial
O privire intensivă asupra operațiunilor de manipulare a fișierelor Python cu exemple practice:
În seria de Tutorial Python pentru începători , am aflat mai multe despre Funcții Python String în ultimul nostru tutorial.
Python ne oferă o caracteristică importantă pentru citirea datelor din fișier și scrierea datelor într-un fișier.
În cea mai mare parte, în limbajele de programare, toate valorile sau datele sunt stocate în unele variabile de natură volatilă.
Deoarece datele vor fi stocate în acele variabile numai în timpul rulării și vor fi pierdute odată cu finalizarea executării programului. Prin urmare, este mai bine să salvați aceste date permanent folosind fișiere.
Ce veți învăța:
- Cum gestionează fișierele Python?
- Tipuri de fișiere în Python
- Operațiuni de gestionare a fișierelor Python
- Codificare în fișiere
- Scrierea și citirea datelor dintr-un fișier binar
- Atribute I / O fișier
- Metode de fișiere Python
- rezumat
- Lectură recomandată
Cum gestionează fișierele Python ?
Dacă lucrați într-o aplicație software mare în care procesează un număr mare de date, atunci nu ne putem aștepta ca aceste date să fie stocate într-o variabilă, deoarece variabilele sunt de natură volatilă.
Prin urmare, când sunteți pe punctul de a gestiona astfel de situații, rolul fișierelor va intra în imagine.
Deoarece fișierele sunt de natură non-volatilă, datele vor fi stocate permanent pe un dispozitiv secundar precum Hard Disk și folosind python vom gestiona aceste fișiere în aplicațiile noastre.
Vă gândiți cum va gestiona python fișierele?
Să luăm o Exemplu despre modul în care oamenii normali vor gestiona fișierele. Dacă dorim să citim datele dintr-un fișier sau să le scriem într-un fișier, atunci, în primul rând, vom deschide fișierul sau vom crea un fișier nou dacă fișierul nu există și apoi vom efectua operațiile normale de citire / scriere , salvați fișierul și închideți-l.
În mod similar, facem aceleași operații în python folosind unele metode sau funcții încorporate.
Tipuri de fișiere în Python
Există două tipuri de fișiere în Python și fiecare dintre ele este explicat mai jos în detaliu, cu exemple pentru înțelegerea dvs. ușoară.
Sunt:
- Fisier binar
- Fisier text
Fișiere binare în Python
Majoritatea fișierelor pe care le vedem în sistemul nostru computerizat se numesc fișiere binare.
Exemplu:
- Fișiere de documente: .pdf, .doc, .xls etc.
- Fișiere imagine: .png, .jpg, .gif, .bmp etc.
- Fișiere video: .mp4, .3gp, .mkv, .avi etc.
- Fișiere audio: .mp3, .wav, .mka, .aac etc.
- Fișiere de baze de date: .mdb, .accde, .frm, .sqlite etc.
- Arhivați fișiere: .zip, .rar, .iso, .7z etc.
- Fișiere executabile: .exe, .dll, .class etc.
Lectură recomandată = >> Cum se deschide fișierul .7z
Toate fișierele binare urmează un format specific. Putem deschide unele fișiere binare în editorul de text normal, dar nu putem citi conținutul prezent în interiorul fișierului. Acest lucru se datorează faptului că toate fișierele binare vor fi codificate în format binar, care poate fi înțeles doar de un computer sau de o mașină.
Pentru manipularea unor astfel de fișiere binare avem nevoie de un anumit tip de software pentru a-l deschide.
De exemplu, Aveți nevoie de software Microsoft Word pentru a deschide fișiere binare .doc. La fel, aveți nevoie de un software de citire pdf pentru a deschide fișiere binare .pdf și aveți nevoie de un software de editare foto pentru a citi fișierele de imagine și așa mai departe.
Fișiere text în Python
Fișierele text nu au o codificare specifică și pot fi deschise chiar în editorul de text normal.
Exemplu:
- Standarde web: html, XML, CSS, JSON etc.
- Cod sursa: c, app, js, py, java etc.
- Documente: txt, tex, RTF etc.
- Date tabulare: csv, tsv etc.
- Configurare: ini, cfg, reg etc.
În acest tutorial, vom vedea cum să gestionăm atât textul, cât și fișierele binare cu câteva exemple clasice.
Operațiuni de gestionare a fișierelor Python
Cel mai important, există 4 tipuri de operații care pot fi gestionate de Python pe fișiere:
- Deschis
- Citit
- Scrie
- Închide
Alte operațiuni includ:
- Redenumiți
- Șterge
Python Creați și deschideți un fișier
Python are o funcție încorporată numită open () pentru a deschide un fișier.
Este nevoie de cel puțin un argument, așa cum este menționat în sintaxa de mai jos. Metoda deschisă returnează un obiect fișier care este utilizat pentru a accesa scrierea, citirea și alte metode încorporate.
Sintaxă:
file_object = open(file_name, mode)
Aici, nume_fișier este numele fișierului sau locația fișierului pe care doriți să îl deschideți, iar numele_fișier ar trebui să aibă și extensia de fișier inclusă. Ceea ce înseamnă în test.txt - termenul test este numele fișierului și .txt este extensia fișierului.
Modul din sintaxa funcției deschise va spune Python ca operațiune pe care doriți să o faceți pe un fișier.
- „R” - Mod de citire: Modul de citire este utilizat numai pentru citirea datelor din fișier.
- „W” - Mod de scriere: Acest mod este utilizat atunci când doriți să scrieți date în fișier sau să le modificați. Amintiți-vă că modul de scriere suprascrie datele prezente în fișier.
- „A” - Mod de adăugare: Modul de adăugare este utilizat pentru a adăuga date la fișier. Rețineți că datele vor fi adăugate la sfârșitul indicatorului de fișier.
- ‘R +’ - Mod de citire sau scriere: Acest mod este utilizat atunci când vrem să scriem sau să citim datele din același fișier.
- „A +” - Mod de adăugare sau citire: Acest mod este utilizat atunci când dorim să citim date din fișier sau să le adăugăm în același fișier.
Notă: Modurile menționate mai sus sunt doar pentru deschiderea, citirea sau scrierea fișierelor text.
În timp ce folosim fișiere binare, trebuie să folosim aceleași moduri cu litera „B” la sfarsit. Astfel, Python poate înțelege că interacționăm cu fișiere binare.
- „Wb” - Deschideți un fișier pentru modul de scriere numai în format binar.
- „Rb” - Deschideți un fișier pentru modul numai citire în format binar.
- „De la” - Deschideți un fișier pentru a adăuga numai modul în format binar.
- „Rb +” - Deschideți un fișier pentru modul numai citire și scriere în format binar.
- „De la +” - Deschideți un fișier pentru adăugarea și modul de citire numai în format binar.
Exemplul 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)
În exemplul de mai sus, deschidem fișierul numit „test.txt” prezent la locația „C: / Documents / Python /” și deschidem același fișier într-un mod de citire-scriere, ceea ce ne oferă mai multă flexibilitate.
Exemplul 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)
În exemplul de mai sus, deschidem fișierul numit ‘img.bmp’ prezent la locația „C: / Documents / Python /”, dar, aici încercăm să deschidem fișierul binar.
Python Read From File
Pentru a citi un fișier în python, trebuie să deschidem fișierul în modul de citire.
Există trei moduri în care putem citi fișierele din python.
- citit ((n))
- readline ((n))
- readlines ()
Aici, n este numărul de octeți de citit.
Mai întâi, să creăm un exemplu de fișier text așa cum se arată mai jos.
Acum, să observăm ce face fiecare metodă de citire:
Exemplul 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))
Ieșire:
Buna ziua
Aici deschidem fișierul test.txt într-un mod de citire numai și citim doar primele 5 caractere ale fișierului folosind metoda my_file.read (5).
Ieșire:
Exemplul 2:
ce program va deschide un fișier eps
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())
Ieșire:
Salut Lume
Bună Python
Buna dimineata
Aici nu am furnizat niciun argument în interiorul funcției read (). Prin urmare, va citi tot conținutul prezent în fișier.
Ieșire:
Exemplul 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))
Ieșire:
El
Această funcție returnează primele 2 caractere ale liniei următoare.
Ieșire:
Exemplul 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())
Ieșire:
Salut Lume
Folosind această funcție putem citi conținutul fișierului linie cu linie.
Ieșire:
Exemplul 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())
Ieșire:
(„Hello World n”, „Hello Python n”, „Good Morning”)
Aici citim toate liniile prezente în fișierul text, inclusiv caracterele newline.
Ieșire:
Acum să vedem câteva exemple mai practice de citire a unui fișier.
Citirea unui anumit rând dintr-un fișier
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
Ieșire:
Ce mai faci
În exemplul de mai sus, încercăm să citim doar 4alinie din fișierul ‘test.txt’ folosind un „Pentru buclă” .
Ieșire:
Citirea întregului fișier simultan
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)
Ieșire:
Salut Lume
Bună Python
Buna dimineata
Ce mai faci
Ieșire:
Python Write to File
Pentru a scrie date într-un fișier, trebuie să deschidem fișierul în modul de scriere.
Trebuie să fim foarte atenți în timp ce scriem date în fișier, deoarece acesta suprascrie conținutul prezent în fișierul pe care îl scrieți și toate datele anterioare vor fi șterse.
Avem două metode pentru scrierea datelor într-un fișier așa cum se arată mai jos.
- scrie (șir)
- scrisori (listă)
Exemplul 1:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”)
Codul de mai sus scrie șirul „Hello World” în fișierul „test.txt”.
Înainte de a scrie date într-un fișier test.txt:
Ieșire:
Exemplul 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)
Prima linie va fi „Hello World” și așa cum am menționat n caracter, cursorul se va deplasa la următoarea linie a fișierului și apoi va scrie „Hello Python”.
aplicație care vă permite să spionați un alt telefon
Amintiți-vă dacă nu menționăm n caracter, atunci datele vor fi scrise continuu în fișierul text precum „Hello WorldHelloPython”
Ieșire:
Exemplul 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)
Codul de mai sus scrie a lista de date în fișierul „test.txt” simultan.
Ieșire:
Python Append la fișier
Pentru a adăuga date într-un fișier, trebuie să deschidem fișierul în modul „a +”, astfel încât să avem acces atât la modurile de atașare, cât și la cele de scriere.
Exemplul 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)
Codul de mai sus adaugă șirul „Apple” la Sfârșit a fișierului „test.txt”.
Ieșire:
Exemplul 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)
Codul de mai sus adaugă șirul „Apple” la sfârșitul fișierului „test.txt” într-o nouă linie .
Ieșire:
Exemplul 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)
Codul de mai sus adaugă o listă de date într-un fișier „test.txt”.
Ieșire:
Exemplul 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)
În codul de mai sus, adăugăm lista de date în fișierul „test.txt”. Aici, puteți observa că am folosit metoda tell () care imprimă unde se află cursorul în prezent.
căutare (compensare): Compensarea ia trei tipuri de argumente și anume 0,1 și 2.
Când decalajul este 0: Referința va fi indicată la începutul fișierului.
Când decalajul este 1: Referința va fi îndreptată către poziția curentă a cursorului.
Când compensarea este 2: Referința va fi indicată la sfârșitul fișierului.
Ieșire:
Python Close File
Pentru a închide un fișier, trebuie mai întâi să deschidem fișierul. În Python, avem o metodă încorporată numită close () pentru a închide fișierul care este deschis.
Ori de câte ori deschideți un fișier, este important să îl închideți, mai ales cu metoda de scriere. Deoarece dacă nu apelăm funcția de închidere după metoda de scriere, orice date pe care le-am scris într-un fișier nu vor fi salvate în fișier.
Exemplul 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) my_file.close()
Exemplul 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”) my_file.close()
Python Rename sau Delete File
Python ne oferă un modul „os” care are câteva metode încorporate care ne vor ajuta în efectuarea operațiunilor de fișier, cum ar fi redenumirea și ștergerea fișierului.
Pentru a utiliza acest modul, mai întâi de toate, trebuie să importăm modulul „os” în programul nostru și apoi să apelăm metodele aferente.
metoda rename ():
Această metodă rename () acceptă două argumente, adică numele fișierului curent și numele noului fișier.
Sintaxă:
os.rename(current_file_name, new_file_name)
Exemplul 1:
conceptul oops în c # cu exemplu
import os os.rename(“test.txt”, “test1.txt”)
Aici „test.txt” este numele fișierului curent și „test1.txt” este noul nume de fișier.
Puteți specifica locația, precum și în exemplul de mai jos.
Exemplul 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”)
Înainte de a redenumi fișierul:
După executarea programului de mai sus
metoda remove ():
Folosim metoda remove () pentru a șterge fișierul furnizând numele fișierului sau locația fișierului pe care doriți să îl ștergeți.
Sintaxă:
os.remove(file_name)
Exemplul 1:
import os os.remove(“test.txt”)
Aici ‘test.txt’ este fișierul pe care doriți să îl eliminați.
În mod similar, putem trece și locația fișierului la argumentele prezentate în exemplul de mai jos
Exemplul 2:
import os os.remove(“C:/Documents/Python/test.txt”)
Codificare în fișiere
Codificarea fișierului reprezintă convertirea caracterelor într-un format specific pe care numai o mașină îl poate înțelege.
Diferite mașini au un format de codare diferit, așa cum se arată mai jos.
- Folosește sistemul de operare Microsoft Windows „Cp1252” format de codificare în mod implicit.
- Utilizările Linux sau Unix OS „Utf-8” format de codificare în mod implicit.
- Mac OS utilizează Apple „Utf-8” sau „utf-16” format de codificare în mod implicit.
Să vedem operația de codificare cu câteva exemple.
Exemplul 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()
Ieșire:
Formatul de codare Microsoft Windows în mod implicit este cp1252.
Aici, mi-am executat programul pe computerul Windows, deci a imprimat codificarea implicită ca „cp1252”.
Ieșire:
De asemenea, putem schimba formatul de codificare al unui fișier trimițându-l ca argumente funcției deschise.
Exemplul 2:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”cp437”) print(“File encoding format is:”, my_file.encoding) my_file.close()
Ieșire:
Formatul de codare a fișierului este: cp437
Ieșire:
Exemplul 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()
Ieșire:
Formatul de codare a fișierului este: utf-16
Ieșire:
Scrierea și citirea datelor dintr-un fișier binar
Fișierele binare stochează date în formatul binar (0 și 1), care este ușor de înțeles de către aparat. Deci, atunci când deschidem fișierul binar în mașina noastră, acesta decodează datele și se afișează într-un format care poate fi citit de om.
Exemplu:
# Să creăm un fișier binar.
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)
În exemplul de mai sus, mai întâi creăm un fișier binar „Bfile.bin” cu accesul de citire și scriere și orice date pe care doriți să le introduceți în fișier trebuie să fie codificate înainte de a apela metoda de scriere.
De asemenea, tipărim datele fără a le decodifica, astfel încât să putem observa cum arată datele exact în interiorul fișierului atunci când este codificat și, de asemenea, tipărim aceleași date decodificându-le, astfel încât să poată fi citite de oameni.
Ieșire:
Date binare: b’Hello Python ’
Date normale: Hello Python
Ieșire:
Atribute I / O fișier
Atribut | Descriere |
---|---|
readlines () | Citește și returnează toate liniile din fișier |
Nume | Returnează numele fișierului |
Mod | Modul de returnare a fișierului |
Codificare | Returnează formatul de codificare al fișierului |
Închis | Returnează true dacă fișierul închis altfel returnează false |
Exemplu:
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)
Ieșire:
Care este numele fișierului? C: /Documents/Python/test.txt
Care este modul fișier? r
Care este formatul de codare? cp1252
Fișierul este închis? Fals
Fișierul este închis? Adevărat
Ieșire:
Să încercăm alte câteva metode ale fișierului.
Exemplu:
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()
Ieșire:
Bună Python
Salut Lume
Buna dimineata
Fișierul poate fi citit :? Adevărat
Se poate scrie fișierul :? Adevărat
Dosar nr: 3
Ieșire:
Metode de fișiere Python
Funcţie | Explicaţie |
---|---|
deschis() | Pentru a deschide un fișier |
închide() | Închideți un fișier deschis |
număr fișier() | Returnează un număr întreg al fișierului |
citit (n) | Citește caractere „n” din fișier până la sfârșitul acestuia |
lizibil () | Returnează adevărat dacă fișierul este lizibil |
Citeste linia() | Citiți și returnați un rând din fișier |
căutare (compensare) | Schimbați poziția cursorului cu octeți așa cum este specificat de offset |
cautabil () | Returnează true dacă fișierul acceptă acces aleatoriu |
spune() | Returnează locația curentă a fișierului |
scris () | Returnează adevărat dacă fișierul poate fi scris |
scrie() | Scrie un șir de date în fișier |
scrisori () | Scrie o listă de date în fișier |
Să vedem ce am discutat până acum într-un program final.
Exemplu:
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()
Ieșire:
Care este numele fișierului? C: /Documents/Python/test.txt
Care este modul fișierului? w +
Care este formatul de codare? cp1252
Dimensiunea fișierului este: 192
Poziția cursorului este la octet: 36
Conținutul fișierului este: Hello Python
Buna dimineata
La revedere
Datele prezente pe linia curentă sunt: La revedere
Datele binare sunt: 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 ′
Datele normale sunt: La revedere
Ieșire:
rezumat
Mai jos sunt prezentate câteva indicații care pot fi rezumate din tutorialul de mai sus:
- De obicei, folosim un fișier pentru stocarea permanentă a datelor în stocarea secundară, deoarece este de natură nevolatilă, astfel încât datele să poată fi utilizate în viitor.
- Uneori, în unele aplicații, este posibil să dorim să citim datele dintr-un fișier text sau dintr-un fișier binar, astfel încât să le putem realiza folosind funcțiile încorporate în Python, cum ar fi metodele deschise, citite, scrise etc.
- Trebuie să fii foarte atent în timp ce folosești metoda de scriere, deoarece orice date pe care le scrii în fișier vor fi suprascrise și datele vechi se vor pierde.
- Pentru a preveni suprascrierea datelor, este mai bine să deschideți un fișier în modul de scriere și adăugare, astfel încât datele să fie adăugate la sfârșitul fișierului.
- Amintiți-vă, când deschideți un fișier în modul binar, acesta nu acceptă parametrul de codare.
- Puteți efectua redenumirea și ștergerea unui fișier folosind redenumirea și eliminarea metodelor din modulul / pachetul „os”.
Sperăm că ți-a plăcut acest tutorial informativ despre manipularea fișierelor Python. Următorul nostru tutorial va explica mai multe despre funcția principală Python.
Lectură recomandată
- Intrare-ieșire și fișiere în Python (Python Open, Read and Write to File)
- Tutorial Python DateTime cu exemple
- Tutorial Python pentru începători (Training gratuit Python GRATUIT)
- Tutoriale detaliate pentru eclipsă pentru începători
- Funcții Python String
- Tutorial Python String Split
- Variabile Python
- Obiecte de fișiere VBScript: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File