Faila atvēršana un aizvēršana
Lai lasītu datus no teksta faila ar nosaukumu “dati.txt ”, jums jāizmanto metode“ open ”, kas nāk ar oficiālām Python būvēm. Pārbaudiet koda paraugu zemāk:
f = atvērts ('dati.txt ',' r ')f.aizvērt ()
Pirmais paziņojums atver “datus.txt ”fails režīmā“ r ”(tikai lasāms). Metode “open” kā argumentus pieņem faila nosaukumu un faila apstrādes režīmu. Bez “r” režīma ir arī citi režīmi, kas tiks paskaidroti vēlāk. Iepriekš minētais koda fragments neveic nekādas darbības ar atvērto failu. Metode “aizvērt” tiek izmantota, lai tīri aizvērtu atvērto failu, lai varētu atbrīvot atmiņu un izvairītos no datu sabojāšanas atvērtajā failā, kas dažreiz var notikt, ja fails nav pareizi aizvērts.
Tā vietā, lai izmantotu “atvērto” metodi failu atvēršanai un aizvēršanai, varat to apvienot ar “ar” atslēgvārdu un izmantot “ar atvērtu” priekšrakstu.
ar atvērtu ('dati.txt ',' r ') kā f:iziet
Izrādes “ar atvērtu” izmantošanas galvenā priekšrocība ir tā, ka tulks automātiski aizver atvērto failu, kad “ar atvērtu” koda bloku pilnībā parsē. Kaut arī atkritumu savācējs Python automātiski aizver atvērtos failus pēc kāda laika, kā noteikts iepriekš iestatītajos noteikumos, paziņojumi “ar atvērtiem” nodrošina, ka fails tiek tīri aizvērts, tiklīdz koda bloks ir pabeigts, lai atbrīvotu resursus.
Teksta faila rindiņu lasīšana
Lai lasītu faila saturu, izmantojiet tālāk norādīto koda paraugu:
ar atvērtu ('dati.txt ',' r ') kā f:dati = f.lasīt ()
drukāt (dati)
Piemēram, ja “dati.txt ”failā ir 1–10 numuri, katrā jaunā rindā, pēc iepriekš minētā koda izpildīšanas iegūsiet šādu izvadi:
12
3
4
5
6
7
8
9
10
Visa datu kopa no “datiem.txt ”fails tiek saglabāts mainīgajā“ data ”. Ja vēlaties izlasīt saraksta rindas, varat izmantot šādus kodu paraugus:
ar atvērtu ('dati.txt ',' r ') kā f:dati = f.lasāmrindas ()
drukāt (dati) ar atvērtu ('dati.txt ',' r ') kā f:
dati = saraksts (f)
drukāt (dati)
Ņemiet vērā, ka, izmantojot iepriekš minētos fragmentus, katra saraksta elementa beigās var iegūt rakstzīmi “\ n” (jauna rinda). Lai noņemtu šīs jaunās rindiņas rakstzīmes, iespējams, būs jāpārskata saraksts. Varat gan izveidot jaunu sarakstu, gan noņemt jaunu līniju rakstzīmes, tā vietā izmantojot šādu kodu:
datu_ saraksts = []ar atvērtu ('dati.txt ',' r ') kā f:
līnijai f:
datu_ saraksts.pievienot (rinda.sloksne ())
drukāt (datu_ saraksts)
Palaidot iepriekš minēto kodu, jūs iegūsiet šādu izvadi:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Datu rakstīšana uz atvērtu failu
Lai ierakstītu datus failā, kas tiek atvērts, izmantojot paziņojumu “ar atvērtu”, kā arguments jums būs jānorāda cits atvēršanas režīms. Šeit ir daži no režīmiem:
- 'a' - izmanto datu pievienošanai atvērta faila beigās, izveido jaunu failu, ja tāda nav
- 'w' - izdzēš atvērtā faila saturu un raksta jaunus datus, izveido jaunu failu, ja tāda nav
- 'r' - tikai lasīšanas režīms (noklusējuma režīms, ja netiek sniegts arguments)
- 'r +' - tiek izmantots gan lasīšanai, gan rakstīšanai (sākotnējā pozīcija atrodas faila sākumā)
- 'b' - fails tiek atvērts binārā režīmā (noderīgs binārā faila, kas nav teksts), to var kombinēt ar citiem režīmiem
- 'a +' - izmanto lasīšanai un pievienošanai, izveido jaunu failu, ja tāda nav
- "w +" - izmanto lasīšanai un rakstīšanai, izveido jaunu failu, ja tāda nav
Daži koda fragmenti, kas datu rakstīšanai izmanto dažādus režīmus, ir uzskaitīti zemāk.
Lai teksta failā ierakstītu jaunu saturu, dzēšot esošos datus, izmantojiet šo paraugu:
ar atvērtu ('dati.txt ',' w ') kā f:f.rakstīt ("1 \ n2")
Pēc iepriekš minētā fragmenta palaišanas sadaļā “dati.txt ”fails jāaizstāj ar divām jaunām rindām.
Lai pievienotu rindas teksta faila sākumā, jums jāizmanto metode “meklēt”, lai atgrieztos faila bufera sākuma pozīcijā:
ar atvērtu ('dati.txt ',' r + ') kā f:dati = f.lasīt ()
f.meklēt (0)
f.rakstīt ("- 1 \ n0 \ n")
f.rakstīt (dati)
Pēc fragmenta izpildīšanas augšpusē “dati” augšējās divās rindiņās tiks pievienoti -1 un 0 skaitļi.txt ”faili.
Lai pievienotu datus faila beigās, izmantojiet šo paraugu:
ar atvērtu ('dati.txt ',' a ') kā f:f.rakstīt ("11 \ n12")
Pēc iepriekš minētā fragmenta palaišanas faila beigās tiks pievienoti 11 un 12 numuri.
Secinājums
Python iebūvētās klases un metodes nodrošina stabilu veidu, kā rīkoties ar teksta failiem. Tikai ar dažām koda rindiņām jūs varat manipulēt ar failā esošajiem datiem, kā arī ievietot jaunas rindas.