Python poskytuje vstavané funkcie na vytváranie, písanie a čítanie súborov. V Pythone je možné spracovať dva typy súborov, 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 uložia po ich konverzii do strojovo zrozumiteľného binárneho jazyka.
Tento článok sa zameria na otváranie, zatváranie, čítanie a zapisovanie údajov do textového súboru. Tu tiež uvidíme, ako sa dostať Python výstup v textovom súbore.
Režimy prístupu k súborom
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äť súboru v súbore. Rukoväť súboru je ako kurzor, ktorý určuje, odkiaľ sa majú údaje čítať alebo zapisovať do súboru a môžeme získať výstup Pythonu v textovom súbore.
V Pythone je 6 režimov prístupu:
- Len na čítanie („r“)
- Čítať a písať („r+“)
- Iba písať („w“)
- Píšte a čítajte („w+“)
- Iba pripojiť („a“)
- Pripojiť a prečítať („a+“)
Len na čítanie („r“): Otvorte 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+“): Otvorte súbor na čítanie a zápis. Rukoväť je umiestnená na začiatku súboru. Vyvolá chybu I/O, ak súbor neexistuje.
Napíšte iba ('w'): Otvorte súbor na zápis. Pre existujúce súbory sú údaje skrátené a prepísané. Rukoväť je umiestnená na začiatku súboru. Vytvorí súbor, ak súbor neexistuje.
Píšte a čítajte („w+“) : Otvorte súbor 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“) : Otvorte súbor 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.
Pripojiť a prečítať („a+“): Otvorte súbor 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.
Ako sa načítavajú súbory do primárnej pamäte?
V počítači sú dva druhy pamäte, t. j. primárna a sekundárna pamäť, každý súbor, ktorý ste uložili, alebo ktokoľvek uložený je v sekundárnej pamäti, pretože všetky údaje v primárnej pamäti sa po vypnutí počítača vymažú. Takže keď potrebujete zmeniť akýkoľvek textový súbor alebo s ním len pracovať v pythone, musíte tento súbor načítať do primárnej pamäte. Python interaguje so súbormi načítanými v primárnej pamäti alebo hlavnej pamäti manipulátory so súbormi (Takto váš operačný systém poskytuje prístup k pythonu na interakciu so súborom, ktorý ste otvorili, vyhľadávaním súboru v jeho pamäti, ak sa nájde, vráti obslužný program súboru a potom môžete so súborom pracovať).
Otvorenie textového súboru v Pythone
Vykonáva sa pomocou funkcie open(). Pre túto funkciu nie je potrebné importovať žiadny modul.
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á namiesto názvu súboru. Poznámka: The 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é.
Python
použitia operačného systému
# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r>'D:TextMyFile2.txt'>,>'w+'>)> |
>
>
Tu sa vytvorí súbor1 ako objekt pre MyFile1 a súbor2 ako objekt pre MyFile2
Zatvorenie textového súboru v Pythone
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. File_object.close()
Python
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
nohy vs noha
>
Zápis do súboru v Pythone
Existujú dva spôsoby zápisu do súboru:
- Použitie write()
- Použitie writelines()
Zápis do textového súboru Python pomocou write()
napíš(): Vloží reťazec str1 do jedného riadku v textovom súbore.
File_object.write(str1)>
Zápis do textového súboru pomocou writelines()
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]>
Referencia: write() VS writelines()
Čítanie zo súboru v Pythone
Existujú tri spôsoby čítania údajov z textového súboru:
- Použitie read()
- Použitie readline()
- Použitím readlines()
Čítanie zo súboru pomocou read()
čítať() : Vráti načítané bajty vo forme reťazca. Prečíta n bajtov, ak nie je zadané n, prečíta celý súbor.
File_object.read([n])>
Čítanie textového súboru pomocou readline()
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])>
Čítanie súboru pomocou readlines()
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.
V tomto príklade sa vytvorí súbor s názvom myfile.txt a otvorí sa v režime zápisu ('w'>). Údaje sa do súboru zapisujú pomocouwrite>awritelines>metódy. Súbor sa potom znova otvorí v režime čítania a pridávania ('r+'>). Rôzne operácie čítania, vrátaneread>,readline>,readlines>a používanieseek>, demonštrovať rôzne spôsoby načítania údajov zo súboru. Nakoniec sa súbor uzavrie.
Python3
# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> #
is placed to indicate EOL (End of Line)> 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>))> 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 ']>
Pripojenie k súboru v Pythone
V tomto príklade je súbor s názvom myfile.txt pôvodne otvorený v režime zápisu ('w'>) na písanie riadkov textu. Súbor sa potom znova otvorí v režime pripojenia ('a'>) a Dnes sa pridá k existujúcemu obsahu. Výstup po pripojení sa zobrazí pomocoureadlines>. Následne sa súbor znova otvorí v režime zápisu, pričom sa obsah prepíše pomocou Tomorrow. Konečný výstup po zápise sa zobrazí pomocoureadlines>.
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.readlines())> 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.readlines())> print>()> file1.close()> |
>
>
nastavený js
Výkon:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Súvisiaci článok:
- Súborové objekty v Pythone