Dacă te uiți la fundalul desktopului, ce observi? Fișiere răspândite peste tot, nu? Știu că intrăm în mod obișnuit în acest obișnuit rău de a avea un birou aglomerat, dar punctul de aici este că par să avem de-a face cu dosarele mult.
Vorbind despre Python, este cu siguranță posibil să lucrezi cu fișiere folosind Python și asta îți voi arăta în acest tutorial.
Primul proces natural pe care trebuie să-l realizăm pentru a face orice operație pe un anumit fișier este deschis aceasta. Mergeți mai departe și descărcați Text.txt, care este fișierul pe care îl vom folosi pentru a efectua experimentele noastre.
Pentru a deschide fisierul folosind Python, vom folosi functia open (). După cum se menționează în documentație:
open () returnează un obiect de fișier și este cel mai frecvent utilizat cu două argumente: open (nume fișier, mod)
Înainte de a lua un exemplu, așa cum am menționat mai sus, deschis()
funcția va lua două argumente: nume de fișier și mod. Acest mod de a stabili argumente este de fapt similar cu stdio
(adică C) fopen ()
. Nume de fișier este pur și simplu numele fișierului pe care doriți să îl deschideți. De asemenea, puteți furniza calea către acel fișier dacă nu este în directorul dvs. curent. Și mod este o valoare de șir care indică modul în care fișierul va fi deschis. Exemple de moduri diferite sunt prezentate în tabelul următor:
mod | Descriere |
r | Deschideți fișierul text pentru citire. Fluxul este poziționat la începutul fișierului |
r+ | Deschis pentru citire și scriere. Fluxul este poziționat la începutul fișierului |
w | Trunchiați la zero sau creați fișier text pentru scriere. Fluxul este poziționat la începutul fișierului |
w+ | Deschis pentru citire și scriere. Fișierul este creat dacă nu există, altfel este trunchiat. Fluxul este poziționat la începutul fișierului |
A | Deschis pentru scris. Fișierul este creat dacă nu există. Fluxul este poziționat la sfârșitul fișierului. Următoarea scriere a fișierului va ajunge întotdeauna la sfârșitul curent al fișierului |
A+ | Deschis pentru citire și scriere. Fișierul este creat dacă nu există. Fluxul este poziționat la sfârșitul fișierului. Următoarea scriere a fișierului va ajunge întotdeauna la sfârșitul curent al fișierului |
De asemenea, puteți vedea alte moduri în documentația Python.
Să mergem mai departe și să deschidem fișierul Text.txt. Acest lucru se poate face într-o singură linie după cum urmează:
text_file = deschide ('Text.txt')
După cum puteți vedea aici, nu am specificat mod
. Pentru a afla modul implicit utilizat cu deschis()
, tip print text_file
, caz în care veți obține următoarele:
Deci, după cum puteți vedea, modul implicit este r
. În acest moment este posibil să nu observați nimic, dar deschiderea fișierului a fost realizată în acest pas.
Fișierul este ca o cutie secretă. Am deschis-o în pasul anterior și acum vrem să vedem ce este înăuntru. Citirea unui fișier este simplă în Python și poate fi realizată utilizând citit()
, după cum urmează:
text_file.read ()
Pentru a vedea rezultatul instrucțiunii anterioare, tastați print text_file.read ()
. În acest caz, secretul (conținutul) va fi dezvăluit!
Îmi place să învăț despre "gestionarea fișierelor" în Python
Mergeți și tastați print text_file.read ()
din nou, și ce observi? Puteți vedea asta gol șirul a fost ieșit. Acest lucru se datorează faptului că ați citit deja întregul fișier, spre deosebire de citirea unei linii simultan, adică. Citeste linia()
.
Poate doriți să adăugați (scrieți) o altă teză sau paragraf la fișierul pe care l-am citit deja. Spuneți că doriți să adăugați următoarea propoziție: și căut mai multe
. Acest lucru se poate face în Python folosind scrie()
, după cum urmează:
text_file.write ('și caut mai multe')
Hopa, am primit o eroare aici:
Trasare (ultimul apel ultimul): Fișierul "test.py", linia 2, întext_file.write ('și caut mai multe') IOError: fișierul nu este deschis pentru scriere
Ai înțeles încă? Rețineți când am deschis fișierul în prima secțiune după cum urmează: deschis ( 'Text.txt')
? Deoarece nu am specificat a mod
în acest exemplu, modul (implicit) a fost setat la r
. Acest lucru ne va permite doar să citit fișierul și, în acest exemplu, încercăm scrie la fișier. Deci, să deschidem fișierul din nou, dar cu scrierea w
mod:
text_file = deschide ("Text.txt", "w")
Încercați acum să scrieți din nou propoziția utilizând codul de mai sus. Ce ai primit? hai deschis()
și imprimare
citit()
fișierul prezentat în primele două secțiuni pentru a vedea ce se află în interiorul fișierului:
text_file = deschide ('Text.txt', 'r') print text_file.read ()
Rezultatul acestui script este:
și căut mai multe
Așteptați să vedeți această nouă propoziție însoțită de propoziția originală Îmi place să învăț despre "gestionarea fișierelor" în Python
, nu-i așa? De unde a dispărut? w
mod pare să suprascrie conținutul fișierului în care se scrie. Dacă sunteți interesat să păstrați textul original al documentului, puteți utiliza A
(adăugați):
text_file = deschide ('Text.txt', 'a') text_file.write ('și caut mai multe')
În acest caz, trebuie să obțineți conținutul așteptat în Text.txt
:
Mă bucur să învăț despre "manipularea fișierelor" în Python și caut mai multe
Să punem tot ceea ce am învățat până acum împreună:
cu text deschis ('Text.txt', 'r +') ca text_file: print 'Conținutul fișierului Înainte de a scrie conținut:' print text_file.read () text_file.write (' fișier conținut După scrierea conținutului: 'text_file.seek (0) print text_file.read ()
Avem niște lucruri noi aici. Permiteți-mi să le clarific rapid. cu cât
ne permite să deschidem fișierul, să îl procesăm și să ne asigurăm că acesta este închis. căuta()
, pe de altă parte, ne permite să mutăm pointerul (adică cursorul) în altă parte a fișierului. cauta (0)
, de exemplu, înseamnă că punctul de referință va fi începutul fișierului.
Continuați și rulați scenariul și vedeți ce obțineți ca ieșire.
Obișnuința de a închide un fișier după citire sau scriere vă va permite să eliberați memoria. Da, Python va închide automat fișierele după finalizarea scriptului, dar dacă nu faceți acest lucru în prealabil, toate fișierele deschise vor ocupa spațiu pe care Python ar putea beneficia. Închiderea unui fișier este efectuată pur și simplu folosind închide()
metodă.
Să luăm acest exemplu:
text_file = deschide ('Text.txt', 'a +') print text_file.read () text_file.write ('și caut mai multe')
Ce se va întâmpla dacă închidem fișierul după citit()
? Acesta este, text_file.close ()
. Python va oferi următoarea excepție:
Traceback (cel mai recent apel ultimul): Fișierul "test.py", linia 4, întext_file.write ('și căut pentru mai multe') ValueError: operare I / O pe fișier închis
Astfel, putem concluziona că noi nu poti citiți de la sau scrieți la un fișier închis.
Asta e pentru acest tutorial. Am văzut cât de ușor este Python să lucreze cu fișiere prin intermediul unor operații de bază pe care le-am demonstrat.
Ce alte operațiuni de obicei efectuați pe fișiere utilizând Python?