Failu lasīšana un rakstīšana, izmantojot Python

Reading Writing Files With Python



Faili tiek izmantoti datu glabāšanai un kārtošanai diskā. Mēs bieži izmantojam failus, ja mums pastāvīgi jāuzglabā dati cietajā diskā. Piemēram, teiksim, ka mēs veidojam programmatūras sistēmu, kas uztur studentu ierakstus. Tagad mums ir pastāvīgi jāsaglabā studentu dati turpmākai izmantošanai. Šim nolūkam mēs varam izmantot failus datu glabāšanai, un vēlāk mēs varam atvērt šos failus un piekļūt saglabātajiem datiem jebkurā laikā.

Failu lasīšana un rakstīšana ir ļoti izplatītas Python funkcijas. Python ir viegli izveidot, lasīt un rediģēt failus. Python ir iebūvētas funkcijas failu lasīšanai un rakstīšanai. Jūs varat atvērt, rakstīt un lasīt failus, izmantojot iebūvētās Python funkcijas. Failu darbības tiek veiktas šādā secībā:







  • Atveriet failu
  • Lasīt/rakstīt failu
  • Aizvērt failu

Izmantojot Python, jūs varat izveidot teksta failus un bināros failus. Teksta failos dati tiek glabāti rakstzīmju veidā, un katra rinda beidzas ar jaunas rindas rakstzīmi (“ n”). Bināros failos dati tiek glabāti baitu veidā (1 un 0).



Šajā rakstā jūs uzzināsit:



  • Daži no dažādiem failu režīmiem Python
  • Kā atvērt failu
  • Kā izveidot failu
  • Kā ierakstīt datus failā
  • Kā lasīt failu

Dažādi failu režīmi Python

Python režīmi apraksta ar failu veicamo darbību veidu. Atverot failu, jums jānorāda režīms. Katram failam ir faila rokturis. Failu rokturis darbojas kā kursors, kas norāda, kur rakstīt un lasīt datus. Tas ir atrašanās vietas rādītāja veids. Tālāk ir iekļauti daži no dažādiem piekļuves failu režīmiem Python:





Režīms Apraksts
r Atver failu lasīšanas režīmā. Šis režīms ir atlasīts pēc noklusējuma, ja, atverot failu programmā Python, nenosakāt nevienu režīmu.
iekšā Raksta failu. Šis režīms izveido failu, ja fails jau nepastāv, un pārraksta failā esošos datus.
r+ Izmanto, lai lasītu un rakstītu failu. Tas parāda kļūdu, ja fails nepastāv.
uz Atver failu pievienošanas režīmā. Faila rokturis atrodas faila beigās. Šis režīms nepārraksta esošos datus, bet sāk rakstīt datus faila beigās. Ja fails neeksistē, tiek izveidots jauns fails.
a + Atver failu lasīšanai un rakstīšanai. Tas atver failu rakstīšanas pievienošanas režīmā. Dati tiek ievietoti faila beigās. Ja fails neeksistē, tiek izveidots jauns fails.
t Atver failu teksta režīmā.

Kā atvērt failu

Lai atvērtu failu programmā Python, izmantojiet iebūvēto atvērts () funkciju. Funkcija open () ievada divus argumentus, t.i., faila nosaukumu un darbības režīmu. Šī funkcija atgriež faila objektu kā izvadi. Lai izmantotu funkciju open (), nav nepieciešams importēt nevienu moduli. Funkcijas open () sintakse ir šāda:

file_object= atvērts(faila nosaukums,režīmu)

Šeit “faila_nosaukums” apzīmē faktiskā teksta faila nosaukumu, bet “režīms” apzīmē piekļuvi failam vai faila darbības režīmu. Ja faila nosaukumā ir īpašas rakstzīmes, varat arī ievietot r pirms faila_nosaukuma. R ir novietots šādi:



=file_object= atvērts(rfile_name,režīmu)

Piemēram, faila nosaukums varētu būt: F: newfolder myfile.txt

Kā izveidot failu

Funkciju open () var izmantot, lai izveidotu failus Python. Lai izveidotu failu, izmantojiet pievienošanas režīmu (a) atvērtajā () funkcijā. Izveidojiet failu, izmantojot tālāk norādīto kodu:

failu = atvērts('sample.txt','uz')

Šeit tiek izveidots jauns faila objekts. Faila objekts ir nosaukts kā fails. Jaunizveidotā teksta faila nosaukums ir sample.txt. Teksta fails tiek atvērts pievienošanas režīmā. Tas izveidos jaunu failu, ja fails jau neeksistē. Pēc faila izveides fails ir jāaizver šādā veidā:

failu.aizvērt()

Faila aizvēršanai tiek izmantota iebūvētā aizvēršanas () funkcija.

Kā ierakstīt datus failā

Python ir divas funkcijas, ko izmanto datu ierakstīšanai failā:

  1. rakstīt ()
  2. rakstzīmes ()

Funkciju write () izmanto, lai failā ierakstītu vienas rindas vai vienas virknes datus, savukārt funkciju writelines () izmanto, lai teksta failā ierakstītu vairākas datu rindas. Apskatīsim dažus datu ierakstīšanas failā piemērus.

Funkcijas write () izmantošana

Šajā piemērā mēs izmantojam funkciju write (), lai ierakstītu datus failā. Fails tiek atvērts rakstīšanas režīmā. n tiek ievietots, lai norādītu rindas beigas.

# jauna faila objekta izveidošana un faila atvēršana rakstīšanas režīmā
failu=atvērts('sample.txt','in')
# vienas rindas ierakstīšana failā

failu.rakstīt('Laipni lūdzam linuxhint n')
# citas vienas rindiņas rakstīšana failā
failu.rakstīt('Laipni lūdzam atpakaļ')

#faila aizvēršana
failu.aizvērt()

Izeja

Līnijas ir ierakstītas teksta failos.

Ja mēs atveram failu rakstīšanas režīmā un lūdzam funkciju write () ierakstīt failā vairāk rindiņu, tas pārrakstīs iepriekšējos datus un teksta failā tiks pievienoti jauni dati.

# jauna faila objekta izveidošana un faila atvēršana rakstīšanas režīmā
failu=atvērts('sample.txt','in')
# vienas rindas ierakstīšana failā

failu.rakstīt('Sveiki visiem n')
# citas vienas rindiņas rakstīšana failā
failu.rakstīt('Šī ir aizstātā virkne')

#faila aizvēršana
failu.aizvērt()

Izeja

Rezultātā redzams, ka iepriekšējie dati tiek aizstāti un teksta failā tiek pievienoti jauni dati.

Ja mēs vēlamies saglabāt failā gan iepriekšējos, gan jaunos datus, mēs varam atvērt failu pievienošanas režīmā, piemēram:

# jauna faila objekta izveidošana un faila atvēršana pievienošanas režīmā
failu=atvērts('sample.txt','uz')
# vienas rindas ierakstīšana failā

failu.rakstīt('Sveiki visiem n')
# citas vienas rindiņas rakstīšana failā
failu.rakstīt('Šī ir aizstātā virkne n')
# rakstot failā vēl vienu jaunu rindiņu
failu.rakstīt('Šī ir tikko pievienotā virkņu virkne n')
#faila aizvēršana
failu.aizvērt()

Izeja

Funkcijas writelines () izmantošana

Funkciju writelines () izmanto, lai tekstā vienlaikus ierakstītu vairākas rindas, kā norādīts tālāk.

# jauna faila objekta izveidošana un faila atvēršana rakstīšanas režīmā
failu=atvērts('file1.txt','in')
# vairāku virkņu datu glabāšana mainīgajā
lpp = ['Sveiki visiem n','Laipni lūdzam linuxhint n','mēs izmantojam rakstzīmju funkciju n']
# izmantojot rakstlīniju funkcijas datu ierakstīšanai failā
failu.rakstlīnijas(lpp)
#faila aizvēršana
failu.aizvērt()

Izeja

Kā lasīt failu

Lai lasītu failu programmā Python, vispirms atveriet failu lasīšanas režīmā. Python ir trīs iebūvētas funkcijas faila lasīšanai. Tajos ietilpst:

  1. lasīt ()
  2. readline ()
  3. readlines ()

lasīt (): Izmanto, lai nolasītu datus no faila; atgriež visus datus virknes veidā.

readline (): Nolasa datu rindu no faila; atgriež tikai pirmo rindu.

readlines (): Nolasa visas esošās rindas no faila; atgriež to saraksta veidā.

Funkcija seek () tiek izmantota, lai mainītu faila roktura pozīciju. Lasot datus failā, faila rokturis novieto sevi faila beigās. Tādējādi faila rokturis ir kā kursors, un meklēt () funkcija ir līdzeklis kursora pārvietošanai.

Apskatīsim datu nolasīšanas piemēru no faila.

# faila atvēršana lasīšanas režīmā
failu=atvērts('file1.txt','r')
# izmantojot funkciju read (), lai nolasītu datus no faila
# līniju saglabāšana mainīgā
dati=failu.lasīt()
# datu drukāšana
drukāt('Šī ir lasīšanas () funkcijas izvade: n')
drukāt(dati)

# izmantojot funkciju Seek (), lai sāktu faila pozīciju
failu.meklēt(0)
# izmantojot funkciju readline (), lai nolasītu datus no faila
# līniju saglabāšana mainīgā
dati=failu.lasīšanas līnija()
# datu drukāšana
drukāt('Šī ir readline () funkcijas izvade: n')
drukāt(dati)

# izmantojot funkciju Seek (), lai sāktu faila pozīciju
failu.meklēt(0)
# izmantojot funkciju readlines (), lai nolasītu datus no faila
# līniju saglabāšana mainīgā
dati=failu.lasīšanas līnijas()
# datu drukāšana
drukāt('Šī ir readlines () funkcijas izvade: n')
drukāt(dati)
#faila aizvēršana
failu.aizvērt()

Izeja

Secinājums

Bieži vien failā ir jāglabā informācija vai dati. Izmantojot Python, varat viegli izveidot, rakstīt un lasīt failus, izmantojot Python iebūvētās funkcijas. Ja vēlaties lasīt, rakstīt un izveidot failus, programmā nav jāimportē citi moduļi. Failu lietošanas laikā varat izmantot arī vairākus iebūvētus piekļuves režīmus. Šajā rakstā mēs esam izskaidrojuši, kā lasīt un rakstīt failus Python, izmantojot dažus vienkāršus piemērus.