Faili avamine ja sulgemine
Andmete lugemiseks tekstifailist nimega „andmed.txt ”, peate kasutama Pythoni ametlike ehitustega kaasas olevat“ avatud ”meetodit. Kontrollige allpool näidiskoodi:
f = avatud ('andmed.txt ',' r ')f.Sulge()
Esimene lause avab „andmed.txt ”fail režiimis“ r ”(kirjutuskaitstud). "Avatud" meetod aktsepteerib argumentidena failinime ja faili käsitlemise režiimi. Lisaks režiimile „r” on ka teisi režiime, mida selgitatakse hiljem. Ülaltoodud koodilõik ei käivita avatud failiga ühtegi toimingut. "Sule" meetodit kasutatakse avatud faili puhtaks sulgemiseks, et mälu saaks vabaneda, ja et vältida avanenud failis andmete rikkumist, mis võib mõnikord juhtuda, kui fail pole korralikult suletud.
Failide avamise ja sulgemise meetodi „open” asemel võite selle kombineerida märksõnaga „with” ja kasutada lauset „with open”.
avatud ('andmetega.txt ',' r ') kui f:üle andma
Avalduse “avatud” kasutamise peamine eelis on see, et tõlk sulgeb avatud faili automaatselt, kui “avatud” koodiplokk on parsitud. Kuigi Pythoni prügikoguja sulgeb avatud failid mõne aja pärast automaatselt vastavalt eelseadistatud reeglitele, tagavad "avatud" lausetega ressursside vabastamiseks failide puhta sulgemise kohe, kui koodiplokk on lõpetatud.
Tekstifaili ridade lugemine
Faili sisu lugemiseks kasutage allolevat koodinäidist:
avatud ('andmetega.txt ',' r ') kui f:andmed = f.loe ()
print (andmed)
Näiteks kui „andmed.txt ”failil on 1–10 numbrit, millest igaüks on uuel real. Pärast ülaltoodud koodi käivitamist saate järgmise väljundi:
12
3
4
5
6
7
8
9
10
Kogu „data.txt ”fail salvestatakse muutujasse“ data ”. Kui soovite loendi ridu lugeda, võite kasutada järgmisi koodinäiteid:
avatud ('andmetega.txt ',' r ') kui f:andmed = f.readlines ()
print (andmed) avatud ('andmetega.txt ',' r ') kui f:
andmed = loend (f)
print (andmed)
Pange tähele, et ülaltoodud juppide kasutamine võib tuua loendi iga elemendi lõppu märgi „\ n” (uus rida). Nende uue rea tähemärkide eemaldamiseks peate võib-olla loendit sirvima. Saate nii uue loendi luua kui ka uue rea tähemärgid ribastada, kasutades selle asemel järgmist koodi:
data_list = []avatud ('andmetega.txt ',' r ') kui f:
f-joone jaoks:
andmete_loend.lisa (rida.riba ())
print (andmete_loend)
Ülaltoodud koodi käivitamisel saate järgmise väljundi:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Andmete kirjutamine avatud faili
Andmete kirjutamiseks faili, mis avatakse lausega "avatud" abil, peate argumendina sisestama teise avamisrežiimi. Siin on mõned režiimid:
- 'a' - kasutatakse andmete lisamiseks avatud faili lõpus, loob uue faili, kui seda pole
- 'w' - kustutab avatud faili sisu ja kirjutab uued andmed, loob uue faili, kui seda pole
- 'r' - kirjutuskaitstud režiim (vaikerežiim, kui argumenti ei esitata)
- 'r +' - kasutatakse nii lugemiseks kui ka kirjutamiseks (algne asukoht on faili alguses)
- 'b' - fail avatakse binaarrežiimis (kasulik ka tekstiväliste binaarfailide jaoks), seda saab kombineerida teiste režiimidega
- 'a +' - kasutatakse lugemiseks ja lisamiseks, loob uue faili, kui seda pole
- 'w +' - kasutatakse lugemiseks ja kirjutamiseks, loob uue faili, kui seda pole
Mõned koodijupid, mis kasutavad andmete kirjutamiseks erinevaid režiime, on loetletud allpool.
Uue sisu kirjutamiseks tekstifaili olemasolevate andmete kustutamise ajal kasutage järgmist näidist:
avatud ('andmetega.txt ',' w ') kui f:f.kirjuta ("1 \ n2")
Pärast ülaltoodud jupi käivitamist lisage jaotises „andmed” 1–10 numbrit.txt ”fail tuleks asendada kahe uue reaga.
Ridade lisamiseks tekstifaili algusesse peate failipuhvri algusesse naasmiseks kasutama meetodit „seek“
avatud ('andmetega.txt ',' r + ') kui f:andmed = f.loe ()
f.otsima (0)
f.kirjuta ("- 1 \ n0 \ n")
f.kirjutama (andmed)
Pärast ülaltoodud jupi käivitamist lisatakse jaotises „andmed” kahele ülemisele reale -1 ja 0 numbrit.txt ”failid.
Andmete lisamiseks faili lõppu kasutage järgmist näidist:
avatud ('andmetega.txt ',' a ') kui f:f.kirjuta ("11 \ n12")
Pärast ülaltoodud jupi käivitamist lisatakse faili lõppu 11 ja 12 numbrit.
Järeldus
Pythoni sisseehitatud klassid ja meetodid pakuvad tugevat viisi tekstifailide käsitsemiseks. Ainult mõne koodirea abil saate nii failis olemasolevaid andmeid manipuleerida kui ka uusi ridu lisada.