logo

Jak číst ze souboru v Pythonu

Python poskytuje vestavěné funkce pro vytváření, zápis a čtení souborů. Existují dva typy souborů, se kterými lze pracovat v pythonu, normální textové soubory a binární soubory (napsané v binárním jazyce, 0s a 1s).

    Textové soubory: V tomto typu souboru je každý řádek textu zakončen speciálním znakem zvaným EOL (End of Line), což je ve výchozím nastavení nový znak řádku (‚ ‘) v pythonu. Binární soubory: V tomto typu souboru neexistuje žádný ukončovací znak pro řádek a data jsou uložena po převedení do strojově srozumitelného binárního jazyka.

Poznámka: Chcete-li se dozvědět více o práci se soubory klikněte zde .



Režim přístupu

Režimy přístupu řídí typ operací, které jsou možné s otevřeným souborem. Odkazuje na to, jak bude soubor použit po jeho otevření. Tyto režimy také definují umístění úchytu souboru v souboru. Handle souboru je jako kurzor, který určuje, odkud se mají data v souboru číst nebo zapisovat. Různé přístupové režimy pro čtení souboru jsou –

    Pouze pro čtení (‚r‘) : Otevření textového souboru pro čtení. Rukojeť je umístěna na začátku pilníku. Pokud soubor neexistuje, vyvolá chybu I/O. Toto je také výchozí režim, ve kterém se soubor otevírá. Číst a zapisovat (‚r+‘) : Otevřete soubor pro čtení a zápis. Rukojeť je umístěna na začátku pilníku. Vyvolá chybu I/O, pokud soubor neexistuje. Připojit a přečíst (‚a+‘): Otevřete soubor pro čtení a zápis. Soubor je vytvořen, pokud neexistuje. Rukojeť je umístěna na konci pilníku. Zapisovaná data budou vložena na konec, za existující data.

Poznámka: Chcete-li se dozvědět více o režimu přístupu klikněte zde .

Otevření souboru

To se provádí pomocí funkce open(). Pro tuto funkci není třeba importovat žádný modul.



Syntax:

img css zarovnat
File_object = open(r'File_Name', 'Access_Mode')>

Soubor by měl existovat ve stejném adresáři jako soubor programu python, jinak by měla být plná adresa souboru napsána na místo názvu souboru. Poznámka: Znak r je umístěn před název souboru, aby se zabránilo tomu, že znaky v řetězci názvu souboru budou považovány za speciální znaky. Pokud je například v adrese souboru emp, pak se považuje za znak tabulátoru a vyvolá se chyba neplatná adresa. R dělá řetězec raw, to znamená, že říká, že řetězec neobsahuje žádné speciální znaky. Znak r lze ignorovat, pokud je soubor ve stejném adresáři a adresa není umístěna.

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>+>')>

>

>

Zde je soubor1 vytvořen jako objekt pro MůjSoubor1 a soubor2 jako objekt pro MůjSoubor2.

Zavření souboru

funkce close() zavře soubor a uvolní místo v paměti získané tímto souborem. Používá se v době, kdy soubor již není potřeba nebo pokud má být otevřen v jiném režimu souboru.

Syntax:

File_object.close()>

Python3


co je to internet



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

>

>

Čtení ze souboru

Existují tři způsoby, jak číst data z textového souboru.

    read() : Vrací přečtené bajty ve formě řetězce. Přečte n bajtů, pokud není zadáno n, přečte celý soubor.
File_object.read([n])>
    readline() : Přečte řádek souboru a vrátí se ve formě řetězce. Pro zadané n přečte maximálně n bajtů. Nečte však více než jeden řádek, i když n přesahuje délku řádku.
File_object.readline([n])>
    readlines() : Přečte všechny řádky a vrátí jim jako každý řádek prvek řetězce v seznamu.
File_object.readlines()>

Poznámka: „ “ je považováno za speciální znak o dvou bajtech.

Pří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()>

>

třída vs objekt v jazyce Java

>

Výstup:

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 prohlášením

příkaz with v Pythonu se používá při zpracování výjimek, aby byl kód čistší a mnohem čitelnější. Zjednodušuje správu běžných zdrojů, jako jsou datové proudy souborů. Na rozdíl od výše uvedených implementací není potřeba volat file.close() při použití s ​​příkazem. Samotný příkaz with zajišťuje řádné získání a uvolnění zdrojů.

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ýstup:

Hello This is Delhi This is Paris This is London>

Poznámka: Chcete-li vědět více o s prohlášením klikněte zde .