logo

Kā nolasīt no faila programmā Python

Python nodrošina iebūvētas funkcijas failu izveidei, rakstīšanai un lasīšanai. Ir divu veidu faili, ar kuriem var apstrādāt python, parastie teksta faili un binārie faili (rakstīti binārajā valodā, 0s un 1s).

    Teksta faili: šāda veida failā katra teksta rindiņa tiek pabeigta ar īpašu rakstzīmi, ko sauc par EOL (rindas beigas), kas pēc noklusējuma ir jaunā rindiņas rakstzīme (' ') programmā python. Binārie faili: šāda veida failos rindai nav terminatora, un dati tiek saglabāti pēc to konvertēšanas mašīn saprotamā binārajā valodā.

Piezīme: Lai uzzinātu vairāk par failu apstrādi noklikšķiniet šeit .



Piekļuves režīms

Piekļuves režīmi nosaka atvērtajā failā iespējamo darbību veidus. Tas attiecas uz to, kā fails tiks izmantots pēc tā atvēršanas. Šie režīmi arī nosaka faila roktura atrašanās vietu failā. Faila rokturis ir kā kursors, kas nosaka, no kurienes dati ir jālasa vai jāieraksta failā. Dažādi piekļuves režīmi faila lasīšanai ir:

    Tikai lasāms (“r”): atver teksta failu lasīšanai. Rokturis atrodas faila sākumā. Ja fails neeksistē, rodas I/O kļūda. Šis ir arī noklusējuma režīms, kurā tiek atvērts fails. Lasīt un rakstīt (“r+”): atveriet failu lasīšanai un rakstīšanai. Rokturis atrodas faila sākumā. Paaugstina I/O kļūdu, ja fails neeksistē. Pievienot un lasīt ('a+'): atveriet failu lasīšanai un rakstīšanai. Fails tiek izveidots, ja tas neeksistē. Rokturis atrodas faila galā. Rakstāmie dati tiks ievietoti beigās, aiz esošajiem datiem.

Piezīme: Lai uzzinātu vairāk par piekļuves režīmu noklikšķiniet šeit .

Faila atvēršana

Tas tiek darīts, izmantojot funkciju open (). Šai funkcijai nav nepieciešams importēt moduli.



Sintakse:

pastnieks
File_object = open(r'File_Name', 'Access_Mode')>

Failam ir jāatrodas tajā pašā direktorijā, kurā atrodas python programmas fails, faila nosaukuma vietā ir jāraksta pilna faila adrese. Piezīme: R tiek ievietots pirms faila nosaukuma, lai neļautu faila nosaukuma virknē esošās rakstzīmes uzskatīt par īpašām rakstzīmēm. Piemēram, ja faila adresē ir emp, tad tiek uzskatīts par tabulēšanas rakstzīmi un tiek parādīta kļūda, ja adrese ir nederīga. R padara virkni neapstrādātu, tas ir, tas norāda, ka virkne ir bez īpašām rakstzīmēm. R var tikt ignorēts, ja fails atrodas tajā pašā direktorijā un adrese netiek ievietota.

Python3






# Open function to open the file 'MyFile1.txt'> # (same directory) in read mode and> file1>=> open>('MyFile.txt', 'r')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r'D:TextMyFile2.txt', 'r>+>')>

>

>

Šeit fails1 tiek izveidots kā objekts failam MyFile1 un fails2 kā objekts failam MyFile2.

Faila aizvēršana

Funkcija close() aizver failu un atbrīvo šī faila iegūto atmiņas vietu. To izmanto laikā, kad fails vairs nav vajadzīgs vai ja tas ir jāatver citā faila režīmā.

Sintakse:

File_object.close()>

Python3


grupēšana



# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>('MyFile.txt', 'r')> file1.close()>

>

>

Lasīšana no faila

Ir trīs veidi, kā nolasīt datus no teksta faila.

    read() : atgriež nolasītos baitus virknes veidā. Nolasa n baitus, ja n nav norādīts, nolasa visu failu.
File_object.read([n])>
    readline() : nolasa faila rindiņu un atgriež virknes formā. Norādītajam n nolasa ne vairāk kā n baitus. Tomēr nelasa vairāk par vienu rindiņu, pat ja n pārsniedz rindas garumu.
File_object.readline([n])>
    readlines() : nolasa visas rindas un atgriež tās kā katra rinda kā virknes elementu sarakstā.
File_object.readlines()>

Piezīme: “ ” tiek uzskatīts par īpašu divu baitu rakstzīmi.

Piemērs:

Python3




# Program to show various ways to> # read data from a file.> # Creating a file> file1>=> open>('myfile.txt', 'w')> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> # Writing data to a file> file1.write('Hello ')> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>('myfile.txt', 'r>+>')> print>('Output of Read function>is> ')> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>('Output of Readline function>is> ')> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>('Output of Read(>9>) function>is> ')> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>('Output of Readline(>9>) function>is> ')> print>(file1.readline(>9>))> print>()> file1.seek(>0>)> # readlines function> print>('Output of Readlines function>is> ')> print>(file1.readlines())> print>()> file1.close()>

>

>

Izvade:

Output of Read function is Hello This is Delhi This is Paris This is London Output of Readline function is Hello Output of Read(9) function is Hello Th Output of Readline(9) function is Hello Output of Readlines function is ['Hello 
', 'This is Delhi 
', 'This is Paris 
', 'This is London 
']>

Ar paziņojumu

ar paziņojumu Python tiek izmantots izņēmumu apstrādei, lai padarītu kodu tīrāku un daudz lasāmāku. Tas vienkāršo kopējo resursu, piemēram, failu straumju, pārvaldību. Atšķirībā no iepriekšminētajām ieviešanām, lietojot kopā ar paziņojumu, fails.close() nav jāizsauc. Pats ar paziņojums nodrošina pareizu resursu iegūšanu un atbrīvošanu.

Sintakse:

with open filename as file:>

Python3




lateksa galds
# Program to show various ways to> # read data from a file.> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> # Creating a file> with>open>('myfile.txt', 'w') as file1:> ># Writing data to a file> >file1.write('Hello ')> >file1.writelines(L)> >file1.close()># to change file access modes> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading from a file> >print>(file1.read())>

>

>

Izvade:

Hello This is Delhi This is Paris This is London>

Piezīme: Lai uzzinātu vairāk par to, izmantojot paziņojumu noklikšķiniet šeit .