logo

Zápis do súboru v Pythone

Python poskytuje vstavané funkcie na vytváranie, písanie a čítanie súborov. Existujú dva typy súborov, s ktorými je možné pracovať v pythone, normálne textové súbory a binárne súbory (napísané v binárnom jazyku, 0s a 1s).

    Textové súbory: V tomto type súboru je každý riadok textu ukončený špeciálnym znakom nazývaným EOL (End of Line), čo je predvolene nový znak riadku („ “) v pythone. Binárne súbory: V tomto type súboru neexistuje terminátor pre riadok a údaje sa ukladajú po ich konverzii do strojovo zrozumiteľného binárneho jazyka.

Poznámka: Ak chcete vedieť viac o práci so súbormi kliknite tu .



Obsah

Režim prístupu

Režimy prístupu určujú 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. Rukoväť súboru je ako kurzor, ktorý určuje, odkiaľ sa majú údaje čítať alebo zapisovať do súboru. Rôzne režimy prístupu na čítanie súboru sú –

    Write Only ('w') : Otvorte súbor na zápis. Pre existujúci súbor sú údaje skrátené a prepísané. Rukoväť je umiestnená na začiatku súboru. Vytvorí súbor, ak súbor neexistuje. Write and Read (‚w+‘) : Otvorenie súboru na čítanie a zápis. Pre existujúci súbor sú údaje skrátené a prepísané. Rukoväť je umiestnená na začiatku súboru. Iba pripojiť (‚a‘) : Otvorenie súboru na zápis. Súbor sa vytvorí, ak neexistuje. Rukoväť je umiestnená na konci pilníka. Zapisované dáta budú vložené na koniec, za existujúce dáta.

Poznámka: Ak chcete vedieť viac o režime prístupu kliknite tu .



Otvorenie súboru

Vykonáva sa pomocou funkcie open(). Pre túto funkciu nie je potrebné importovať žiadny modul. Syntax:

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

Súbor by mal existovať v rovnakom adresári ako súbor programu python, inak by mala byť plná adresa súboru napísaná na mieste názvu súboru. Poznámka: R sa umiestni pred názov súboru, aby sa zabránilo tomu, že znaky v reťazci názvu súboru budú považované za špeciálne znaky. Napríklad, ak je v adrese súboru emp, potom sa považuje za znak tabulátora a zobrazí sa chyba neplatnej adresy. R robí reťazec surovým, to znamená, že hovorí, že reťazec neobsahuje žiadne špeciálne znaky. Ak je súbor v rovnakom adresári a adresa sa neumiestňuje, môže byť r ignorované.

Python3






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

>

gimp ako zrušiť výber
>

Tu sa vytvorí súbor1 ako objekt pre MyFile1 a súbor2 ako objekt pre MyFile2.

Zatvorenie súboru

Funkcia close() zatvorí súbor a uvoľní pamäťové miesto získané týmto súborom. Používa sa v čase, keď súbor už nie je potrebný alebo ak sa má otvoriť v inom režime súboru. Syntax:

File_object.close()>

Python3




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

>

>

Zápis do súboru

Existujú dva spôsoby zápisu do súboru.

    write() : Vloží reťazec str1 do jedného riadku v textovom súbore.
File_object.write(str1)>
    writelines() : Pre zoznam prvkov reťazca je každý reťazec vložený do textového súboru. Používa sa na vloženie viacerých reťazcov naraz.
File_object.writelines(L) for L = [str1, str2, str3]>

Poznámka: „ “ sa považuje za špeciálny znak pozostávajúci z dvoch bajtov. Príklad:

Python3


synchronizácia java



# Python program to demonstrate> # writing to file> # Opening a file> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> s>=> 'Hello '> # Writing a string to file> file1.write(s)> # Writing multiple strings> # at a time> file1.writelines(L)> # Closing file> file1.close()> # Checking if the data is> # written to file or not> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(file1.read())> file1.close()>

>

maticový program v jazyku c

>

Výkon:

Hello This is Delhi This is Paris This is London>

Pripája sa k súboru

Keď je súbor otvorený v režime pripojenia, rukoväť je umiestnená na konci súboru. Zapisované dáta budú vložené na koniec, za existujúce dáta. Pozrime sa na nižšie uvedený príklad, aby sme objasnili rozdiel medzi režimom zápisu a režimom pripojenia.

Python3




# Python program to illustrate> # Append vs write mode> 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 London Today Output of Readlines after writing Tomorrow>

S vyhlásením

príkaz with v Pythone 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. Syntax:

with open filename as file:>

Python3




neriadený prechod binárneho stromu

# Program to show various ways to> # write 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)> # Reading from file> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading form a file> >print>(file1.read())>

>

>

Výkon:

Hello This is Delhi This is Paris This is London>

Poznámka: Ak sa chcete dozvedieť viac o vyhlásení, kliknite sem.

použitie pre vyhlásenie:

kroky:

Ak chcete zapisovať do súboru v Pythone pomocou príkazu for, môžete postupovať podľa týchto krokov:

Otvorte súbor pomocou funkcie open() s príslušným režimom („w“ pre zápis).
Príkaz for použite na zacyklenie údajov, ktoré chcete zapísať do súboru.
Na zápis údajov do súboru použite metódu write() objektu súboru.
Zatvorte súbor pomocou metódy close() objektu súboru.

V tomto príklade je súbor otvorený na zápis pomocou príkazu with open(‚súbor.txt‘, ‚w‘) ako f. Dáta, ktoré sa majú zapísať, sú uložené v zozname nazývanom dáta. Príkaz for sa používa na zacyklenie každého riadku údajov v zozname. Príkaz f.write(line + ‘ ’) zapíše každý riadok údajov do súboru so znakom nového riadku ( ) na konci. Nakoniec sa súbor automaticky zatvorí, keď sa skončí blok with.

regresné testovanie v testovaní softvéru

Python3




# Open the file for writing> with>open>(>'file.txt'>,>'w'>) as f:> ># Define the data to be written> >data>=> [>'This is the first line'>,>'This is the second line'>,>'This is the third line'>]> ># Use a for loop to write each line of data to the file> >for> line>in> data:> >f.write(line>+> ' '>)> ># Optionally, print the data as it is written to the file> >print>(line)> # The file is automatically closed when the 'with' block ends>

>

>

Výkon

This is the first line This is the second line This is the third line>

Prístup:
Kód otvorí súbor s názvom file.txt v režime zápisu pomocou bloku with, aby sa zabezpečilo správne zatvorenie súboru, keď sa blok skončí. Definuje zoznam reťazcov nazývaných dáta, ktoré predstavujú riadky, ktoré sa majú zapísať do súboru. Kód potom používa cyklus for na iteráciu cez každý reťazec v údajoch a zapisuje každý reťazec do súboru pomocou metódy write(). Kód pripojí ku každému reťazcu znak nového riadku, aby sa zabezpečilo, že každý reťazec bude napísaný na novom riadku v súbore. Kód voliteľne vytlačí každý reťazec pri zápise do súboru.

Časová zložitosť:
Pôvodný kód aj alternatívny kód majú časovú zložitosť O(n), kde n je počet riadkov, ktoré sa majú zapísať do súboru. Je to preto, že oba kódy musia iterovať cez každý riadok v zozname údajov, aby ho zapísali do súboru.

Priestorová zložitosť:
Pôvodný kód a alternatívny kód majú rovnakú priestorovú zložitosť O(n), kde n je počet riadkov, ktoré sa majú zapísať do súboru. Je to preto, že oba kódy musia vytvoriť zoznam reťazcov, ktoré predstavujú riadky, ktoré sa majú zapísať do súboru.