Lasot vai rakstot failu, piekļuves režīms nosaka atvērtajā failā iespējamo darbību veidu. 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ā. Šo piekļuves režīmu definīcija ir šāda:
- Tikai pievienot ('a'): atveriet failu rakstīšanai. Pievienot un lasīt (a+): atveriet failu lasīšanai un rakstīšanai.
Kad fails tiek atvērts pievienošanas režīmā Python , rokturis atrodas faila beigās. Rakstāmie dati tiks ievietoti beigās, aiz esošajiem datiem.
1. piemērs: Python programma, lai ilustrētu pievienošanas un rakstīšanas režīmu.
Python3
mamma kulkarni aktieris
file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London'>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)># append mode> file1.write(>'Today
'>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.read())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)># write mode> file1.write(>'Tomorrow
'>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.read())> print>()> file1.close()> |
>
>
Izvade:
Output of Readlines after appending This is Delhi This is Paris This is LondonToday Output of Readlines after writing Tomorrow>
2. piemērs: Pievienojiet datus no jaunas rindas
Iepriekš minētajā piemērā failu apstrāde , var redzēt, ka dati nav pievienoti no jaunās rindas. To var izdarīt, failā ierakstot jaunrindas rakstzīmi “ ”.
Python3
# Python program to illustrate> # append from new line> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London'>]> file1.writelines(L)> file1.close()> # Append-adds at last> # append mode> file1>=> open>(>'myfile.txt'>,>'a'>)> # writing newline character> file1.write(>'
'>)> file1.write(>'Today'>)> # without newline character> file1.write(>'Tomorrow'>)> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.read())> print>()> file1.close()> |
>
>
Ridhima Tiwari
Izvade:
Output of Readlines after appending This is Delhi This is Paris This is London TodayTomorrow>
Piezīme: “ ” tiek uzskatīts par īpašu divu baitu rakstzīmi.
3. piemērs: Izmantojot ar paziņojumu Python
ar paziņojumu 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.
Python3
# Program to show various ways to> # append data to a file using> # with statement> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> # Writing to file> with>open>(>'myfile.txt'>,>'w'>) as file1:> ># Writing data to a file> >file1.write(>'Hello
'>)> >file1.writelines(L)> # Appending to file> with>open>(>'myfile.txt'>,>'a'>) as file1:> >file1.write(>'Today'>)> # Reading from file> with>open>(>'myfile.txt'>,>'r+'>) as file1:> ># Reading form a file> >print>(file1.read())> |
kā parādīt lietojumprogrammas slēpšanu operētājsistēmā Android
>
>
Izvade:
Hello This is Delhi This is Paris This is London Today>
Piezīme: Lai uzzinātu vairāk par to, izmantojot paziņojumu noklikšķiniet šeit .
Izmantojot shutil moduli:
Šī pieeja izmanto metodi shutil.copyfileobj(), lai failam “file.txt” pievienotu cita faila (source_file) saturu. Tas var būt noderīgi, ja vēlaties pievienot viena faila saturu citam failam, vispirms nelasot saturu atmiņā.
Pieeja:
Kods izmanto funkciju shutil.copyfileobj(), lai kopētu objekta source_file saturu jaunā failā ar nosaukumu file.txt. Paziņojums with tiek izmantots, lai atvērtu un automātiski aizvērtu failu, izmantojot faila objektu f.
Laika sarežģītība:
Funkcijas shutil.copyfileobj() laika sarežģītība ir proporcionāla kopējamā faila lielumam, jo tai ir jālasa un jāraksta katrs faila baits. Tāpēc koda laika sarežģītība ir O(n), kur n ir avota_faila lielums.
Kosmosa sarežģītība:
Koda telpas sarežģītība ir O(1), jo tas nepiešķir papildu atmiņu, izņemot to, kas nepieciešams faila objektiem source_file un f. Funkcija shutil.copyfileobj() kopē faila saturu gabalos, tāpēc tai nav uzreiz jāielādē viss fails atmiņā.
Kopumā kodam ir lineāra laika sarežģītība un nemainīga telpas sarežģītība, kur laika sarežģītība ir proporcionāla kopējamā faila lielumam.
Python3
drukas masīvs Java
import> shutil> with>open>(>'file.txt'>,>'a'>) as f:> >shutil.copyfileobj(source_file, f)> |
>
>