logo

Čtení a zápis do textových souborů v Pythonu

Python poskytuje vestavěné funkce pro vytváření, zápis a čtení souborů. V Pythonu lze zpracovávat dva typy souborů, 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 ukonč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 není pro řádek žádný terminátor a data se ukládají po převedení do strojově srozumitelného binárního jazyka.

Tento článek se zaměří na otevírání, zavírání, čtení a zápis dat do textového souboru. Zde také uvidíme, jak se dostat Krajta výstup v textovém souboru.



Režimy přístupu k souborům

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í Rukojeť souboru v souboru. Handle souboru je jako kurzor, který určuje, odkud se mají data číst nebo zapisovat do souboru a můžeme získat výstup Pythonu v textovém souboru.

V Pythonu je 6 přístupových režimů:

  • Pouze pro čtení („r“)
  • Číst a psát ('r+')
  • Pouze psát („w“)
  • Pište a čtěte („w+“)
  • Pouze připojit („a“)
  • Připojit a přečíst (‚a+‘)

Pouze pro čtení („r“): Otevřete textový soubor 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á.



Čtení a zápis ('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.

Zapište pouze ('w'): Otevřete soubor pro zápis. U existujících souborů jsou data zkrácena a přepsána. Rukojeť je umístěna na začátku pilníku. Vytvoří soubor, pokud soubor neexistuje.

Pište a čtěte („w+“) : Otevřete soubor pro čtení a zápis. U existujícího souboru jsou data zkrácena a přepsána. Rukojeť je umístěna na začátku pilníku.



Pouze připojit („a“) : Otevřete soubor pro 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.

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.

Jak se soubory načítají do primární paměti?

V počítači jsou dva druhy paměti, tj. primární a sekundární paměť, každý soubor, který jste uložili, nebo kdokoli uložený je v sekundární paměti, protože všechna data v primární paměti se po vypnutí počítače vymažou. Takže když potřebujete změnit jakýkoli textový soubor nebo s ním jen pracovat v pythonu, musíte tento soubor načíst do primární paměti. Python komunikuje se soubory načtenými v primární paměti nebo hlavní paměti obslužné programy souborů (Takto váš operační systém poskytuje přístup k pythonu, aby mohl interagovat se souborem, který jste otevřeli, prohledáním souboru v jeho paměti, pokud byl nalezen, vrátí obslužný program souboru a pak můžete se souborem pracovat).

Otevření textového souboru v Pythonu

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

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 místo názvu souboru. Poznámka: The r je umístěn před názvem 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, potom 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. Pokud je soubor ve stejném adresáři a adresa není umístěna, může být r ignorováno.

Krajta




faktoriál v Javě

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

>

>

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

Zavření textového souboru v Pythonu

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. File_object.close()

Krajta




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

>

linux upravit soubor

>

Zápis do souboru v Pythonu

Existují dva způsoby zápisu do souboru:

  • Použití write()
  • Použití writelines()

Zápis do textového souboru Pythonu pomocí write()

napsat() : Vloží řetězec str1 na jeden řádek v textovém souboru.

File_object.write(str1)>

Zápis do textového souboru pomocí writelines()

writelines() : U seznamu prvků řetězce je každý řetězec vložen do textového souboru. Používá se k vložení více řetězců najednou.

File_object.writelines(L) for L = [str1, str2, str3]>

Odkaz: write() VS writelines()

Čtení ze souboru v Pythonu

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

  • Použití read()
  • Použití readline()
  • Použitím readlines()

Čtení ze souboru pomocí read()

číst(): Vrátí 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])>

Čtení textového souboru pomocí readline()

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

Čtení souboru pomocí readlines()

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.

V tomto příkladu je vytvořen soubor s názvem myfile.txt a otevřen v režimu zápisu ('w'>). Data se do souboru zapisují pomocíwrite>awritelines>metody. Soubor se poté znovu otevře v režimu čtení a připojení ('r+'>). Různé operace čtení, včetněread>,readline>,readlines>a použitíseek>, demonstrovat různé způsoby, jak načíst data ze souboru. Nakonec je soubor uzavřen.

Python3


img css zarovnat



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

Připojení k souboru v Pythonu

V tomto příkladu je soubor s názvem myfile.txt zpočátku otevřen v režimu zápisu ('w'>) k psaní řádků textu. Soubor se poté znovu otevře v režimu připojení ('a'>) a k existujícímu obsahu je přidáno Dnes. Výstup po připojení se zobrazí pomocíreadlines>. Následně je soubor znovu otevřen v režimu zápisu, přičemž se obsah přepíše pomocí Tomorrow. Konečný výstup po zápisu se zobrazí pomocíreadlines>.

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

>

>

Výstup:

Output of Readlines after appending ['This is Delhi 
', 'This is Paris 
', 'This is London 
', 'Today 
'] Output of Readlines after writing ['Tomorrow 
']>

Související článek:

  • Souborové objekty v Pythonu