Počas čítania alebo zápisu do súboru režim prístupu riadi typ operácií, ktoré sú možné v otvorenom súbore. Vzťahuje sa na to, ako sa bude súbor používať po jeho otvorení. Tieto režimy tiež definujú umiestnenie rukoväte súboru v súbore. Definícia týchto režimov prístupu je nasledovná:
- Pripojiť iba („a“): Otvorte súbor na zápis. Pripojiť a prečítať (‚a+‘): Otvorenie súboru na čítanie a zápis.
Keď je súbor otvorený v režime pripojenia v Pythone, rukoväť je umiestnená na konci súboru. Zapisované dáta budú vložené na koniec, za existujúce dáta.
Príklad 1: Program Python na ilustráciu režimu Append vs.
Python3
typy sietí
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()> |
>
>
Výkon:
Output of Readlines after appending This is Delhi This is Paris This is LondonToday Output of Readlines after writing Tomorrow>
Príklad 2: Pripojte údaje z nového riadku
Vo vyššie uvedenom príklade manipulácia so súbormi , je vidieť, že údaje nie sú pridané z nového riadku. Môžete to urobiť zapísaním znaku nového riadku „ “ do súboru.
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()> |
dopredné reťazenie
>
>
Výkon:
Output of Readlines after appending This is Delhi This is Paris This is London TodayTomorrow>
Poznámka: „ “ sa považuje za špeciálny znak pozostávajúci z dvoch bajtov.
Príklad 3: Použitie príkazu With v Pythone
s výpisom sa používa pri spracovaní výnimiek, aby bol kód čistejší a oveľa čitateľnejší. Zjednodušuje správu bežných zdrojov, ako sú prúdy súborov. Na rozdiel od vyššie uvedených implementácií nie je potrebné volať file.close() pri použití s príkazom. Samotný príkaz with zabezpečuje správne získanie a uvoľnenie zdrojov.
Python3
vlk vs líška
# 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())> |
>
veľkosť vektora c++
>
Výkon:
Hello This is Delhi This is Paris This is London Today>
Poznámka: Ak chcete vedieť viac o s vyhlásením kliknite tu .
Použitie modulu Shutil:
Tento prístup používa metódu Shutil.copyfileobj() na pripojenie obsahu iného súboru (zdrojový_súbor) do súboru „file.txt“. To môže byť užitočné, ak chcete pripojiť obsah jedného súboru k druhému bez toho, aby ste museli najprv načítať obsah do pamäte.
Prístup:
Kód používa funkciu Shutil.copyfileobj() na skopírovanie obsahu objektu source_file do nového súboru s názvom file.txt. Príkaz with sa používa na otvorenie a automatické zatvorenie súboru pomocou objektu súboru f.
Časová zložitosť:
Časová zložitosť funkcie Shutil.copyfileobj() je úmerná veľkosti kopírovaného súboru, pretože potrebuje prečítať a zapísať každý bajt súboru. Časová zložitosť kódu je teda O(n), kde n je veľkosť zdrojového_súboru.
Priestorová zložitosť:
Priestorová zložitosť kódu je O(1), keďže neprideľuje žiadnu dodatočnú pamäť nad rámec toho, čo je potrebné pre súborové objekty source_file a f. Funkcia shutil.copyfileobj() skopíruje obsah súboru po častiach, takže nie je potrebné načítať celý súbor do pamäte naraz.
Celkovo má kód lineárnu časovú zložitosť a konštantnú priestorovú zložitosť, pričom časová zložitosť je úmerná veľkosti kopírovaného súboru.
Python3
import> shutil> with>open>(>'file.txt'>,>'a'>) as f:> >shutil.copyfileobj(source_file, f)> |
>
príklady programovania v pythone
>