Ako čítať zo 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 .

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ú –

    Iba na čítanie („r“) : Otvorí textový súbor na čítanie. Rukoväť je umiestnená na začiatku súboru. Ak súbor neexistuje, vyvolá chybu I/O. Toto je tiež predvolený režim, v ktorom sa súbor otvára. Čítanie a zápis (‚r+‘) : Otvorenie súboru na čítanie a zápis. Rukoväť je umiestnená na začiatku súboru. Vyvolá chybu I/O, ak súbor neexistuje. Pripojiť a prečítať (‚a+‘) : Otvorenie súboru na čítanie a 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', 'r')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2> => open> (r'D:TextMyFile2.txt', 'r> +> ')>

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', 'r')> file1.close()>

Čítanie zo súboru

Existujú tri spôsoby čítania údajov z textového súboru.

    read() : Vráti prečítané bajty vo forme reťazca. Prečíta n bajtov, ak nie je zadané n, prečíta celý súbor.
File_object.read([n]) 
    readline() : Prečíta riadok súboru a vráti sa vo forme reťazca. Pre zadané n prečíta maximálne n bajtov. Nečíta však viac ako jeden riadok, aj keď n presahuje dĺžku riadku.
File_object.readline([n]) 
    readlines() : Prečíta všetky riadky a vráti im ako každý riadok prvok reťazca v zozname.
File_object.readlines() 

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

Príklad:

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()>

Výkon:

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 
'] 

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




# 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())>

Výkon:

Hello This is Delhi This is Paris This is London 

Poznámka: Ak chcete vedieť viac o s vyhlásením kliknite tu .