logo

Práce se soubory v Pythonu

Práce se soubory v Pythonu je výkonný a všestranný nástroj, který lze použít k provádění široké škály operací. Je však důležité pečlivě zvážit výhody a nevýhody práce se soubory při psaní programů v Pythonu, abyste zajistili, že kód je bezpečný, spolehlivý a dobře funguje.

V tomto článku prozkoumáme Manipulace se soubory Python, výhody, nevýhody a jak fungují funkce otevření, zápisu a připojení v souboru python.



Práce se soubory Python

Python podporuje práci se soubory a umožňuje uživatelům pracovat se soubory, tj. číst a zapisovat soubory, spolu s mnoha dalšími možnostmi zpracování souborů, pracovat se soubory. Koncept manipulace se soubory se rozšířil přes různé další jazyky, ale implementace je buď komplikovaná nebo zdlouhavá, stejně jako jiné koncepty Pythonu, i tento koncept je zde snadný a krátký. Krajta zachází se soubory odlišně jako s textovými nebo binárními a to je důležité. Každý řádek kódu obsahuje sekvenci znaků, které tvoří textový soubor. Každý řádek souboru je zakončen speciálním znakem zvaným EOL nebo Konec čáry postavy jako čárka {,} nebo znak nového řádku. Ukončí aktuální řádek a oznámí interpretovi, že začal nový. Začněme čtením a zápisem souborů.

Výhody práce se soubory v Pythonu

  • Všestrannost : Práce se soubory v Pythonu umožňuje provádět širokou škálu operací, jako je vytváření, čtení, zápis, připojování, přejmenování a mazání souborů.
  • Flexibilita : Práce se soubory v Pythonu je vysoce flexibilní, protože umožňuje pracovat s různými typy souborů (např. textové soubory, binární soubory, CSV soubory atd.) a provádět různé operace se soubory (např. čtení, zápis, připojování atd.).
  • Uživatel přátelský : Python poskytuje uživatelsky přívětivé rozhraní pro práci se soubory, což usnadňuje vytváření, čtení a manipulaci se soubory.
  • Víceplatformní : Funkce pro práci se soubory Pythonu fungují na různých platformách (např. Windows, Mac, Linux), což umožňuje bezproblémovou integraci a kompatibilitu.

Nevýhody práce se soubory v Pythonu

  • Náchylná k chybám: Operace zpracování souborů v Pythonu mohou být náchylné k chybám, zejména pokud kód není pečlivě napsán nebo pokud existují problémy se systémem souborů (např. oprávnění k souborům, zámky souborů atd.).
  • Bezpečnostní rizika : Manipulace se soubory v Pythonu může také představovat bezpečnostní rizika, zvláště pokud program přijímá uživatelský vstup, který lze použít k přístupu nebo úpravě citlivých souborů v systému.
  • Složitost : Práce se soubory v Pythonu může být složitá, zejména při práci s pokročilejšími formáty souborů nebo operacemi. Kódu je třeba věnovat pečlivou pozornost, aby bylo zajištěno správné a bezpečné zacházení se soubory.
  • Výkon : Operace zpracování souborů v Pythonu mohou být pomalejší než v jiných programovacích jazycích, zejména při práci s velkými soubory nebo provádění složitých operací.

Pro tento článek budeme zvažovat následující geeks.txt soubor jako příklad.

Hello world techcodeview.com 123 456>

Otevřít soubor Python

Před provedením jakékoli operace se souborem, jako je čtení nebo zápis, musíme tento soubor nejprve otevřít. K tomu bychom měli použít vestavěnou funkci Pythonu OTEVŘENO() ale při otevírání musíme specifikovat režim, který představuje účel otevírání souboru.



f = open(filename, mode)>

Kde je podporován následující režim:

  1. r: otevřít existující soubor pro operaci čtení.
  2. V: otevřít existující soubor pro operaci zápisu. Pokud soubor již obsahuje nějaká data, bude přepsán, ale pokud soubor není přítomen, vytvoří se také.
  3. A: otevřít existující soubor pro operaci připojení. Nepřepíše stávající data.
  4. r+: Pro čtení a zápis dat do souboru. Předchozí data v souboru budou přepsána.
  5. w+: K zápisu a čtení dat. Přepíše stávající data.
  6. a+: Pro připojení a čtení dat ze souboru. Nepřepíše stávající data.

Práce v režimu čtení

Existuje více než jeden způsob Jak číst ze souboru v Pythonu . Podívejme se, jak můžeme číst obsah souboru v režimu čtení.

podtrhnout text pomocí css

Příklad 1: Příkaz open otevře soubor Python v režimu čtení a cyklus for vytiskne každý řádek přítomný v souboru.



Python3




# a file named 'geek', will be opened with the reading mode.> file> => open>(>'geek.txt'>,>'r'>)> # This will print every line one by one in the file> for> each>in> file>:> >print> (each)>

>

>

Výstup:

Hello world techcodeview.com 123 456>

Příklad 2: V tomto příkladu extrahujeme řetězec, který obsahuje všechny znaky v souboru Python, který můžeme použít file.read() .

Python3




# Python code to illustrate read() mode> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read())>

>

>

Výstup:

Hello world techcodeview.com 123 456>

Příklad 3: V tomto příkladu uvidíme, jak můžeme číst soubor pomocí s prohlášení v Pythonu.

Python3




# Python code to illustrate with()> with>open>(>'geeks.txt'>) as>file>:> >data>=> file>.read()> print>(data)>

>

>

Výstup:

Hello world techcodeview.com 123 456>

Příklad 4: Dalším způsobem, jak číst soubor, je zavolat určitý počet znaků, jako v následujícím kódu interpret přečte prvních pět znaků uložených dat a vrátí je jako řetězec:

Python3




# Python code to illustrate read() mode character wise> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read(>5>))>

>

>

Výstup:

Hello>

Příklad 5: Rozdělit řádky můžeme také při čtení souborů v Pythonu. Funkce split() rozdělí proměnnou, když narazí na mezeru. Můžete také rozdělit pomocí libovolných postav, jak si přejete.

Python3




# Python code to illustrate split() function> with>open>(>'geeks.txt'>,>'r'>) as>file>:> >data>=> file>.readlines()> >for> line>in> data:> >word>=> line.split()> >print> (word)>

>

>

Výstup:

['Hello', 'world'] ['techcodeview.com'] ['123', '456']>

Vytvoření souboru pomocí funkce write().

Stejně jako při čtení souboru v Pythonu existuje řada způsobů Zápis do souboru v Pythonu . Podívejme se, jak můžeme zapsat obsah souboru pomocí funkce write() v Pythonu.

Práce v režimu zápisu

Podívejme se, jak vytvořit soubor a jak funguje režim zápisu.

Příklad 1: V tomto příkladu uvidíme, jak se režim zápisu a funkce write() používají k zápisu do souboru. Příkaz close() ukončí všechny používané prostředky a uvolní systém od tohoto konkrétního programu.

Python3




# Python code to create a file> file> => open>(>'geek.txt'>,>'w'>)> file>.write(>'This is the write command'>)> file>.write(>'It allows us to write in a particular file'>)> file>.close()>

>

>

Výstup:

This is the write commandIt allows us to write in a particular file>

Příklad 2: Můžeme také použít psaný příkaz spolu s funkcí with().

Python3




# Python code to illustrate with() alongwith write()> with>open>(>'file.txt'>,>'w'>) as f:> >f.write(>'Hello World!!!'>)>

zablokovaná čísla
>

>

Výstup:

Hello World!!!>

Práce v režimu připojení

Podívejme se, jak funguje režim připojení.

Příklad: Pro tento příklad použijeme soubor Python vytvořený v předchozím příkladu.

Python3




# Python code to illustrate append() mode> file> => open>(>'geek.txt'>,>'a'>)> file>.write(>'This will add this line'>)> file>.close()>

>

>

Výstup:

This is the write commandIt allows us to write in a particular fileThis will add this line>

V práci se soubory Pythonu jsou také různé další příkazy, které se používají ke zpracování různých úloh:

rstrip(): This function strips each line of a file off spaces from the right-hand side. lstrip(): This function strips each line of a file off spaces from the left-hand side.>

Je navržen tak, aby poskytoval mnohem čistší syntaxi a zpracování výjimek při práci s kódem. To vysvětluje, proč je dobré je používat s prohlášením, kde je to vhodné. To je užitečné, protože při použití této metody se všechny otevřené soubory po dokončení automaticky zavřou, takže automatické čištění.

Implementace všech funkcí při práci se soubory

V tomto příkladu pokryjeme všechny koncepty, které jsme viděli výše. Kromě toho také uvidíme, jak můžeme odstranit soubor pomocí funkce remove() z Pythonu os modul .

Python3




import> os> def> create_file(filename):> >try>:> >with>open>(filename,>'w'>) as f:> >f.write(>'Hello, world! '>)> >print>(>'File '> +> filename>+> ' created successfully.'>)> >except> IOError:> >print>(>'Error: could not create file '> +> filename)> def> read_file(filename):> >try>:> >with>open>(filename,>'r'>) as f:> >contents>=> f.read()> >print>(contents)> >except> IOError:> >print>(>'Error: could not read file '> +> filename)> def> append_file(filename, text):> >try>:> >with>open>(filename,>'a'>) as f:> >f.write(text)> >print>(>'Text appended to file '> +> filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not append to file '> +> filename)> def> rename_file(filename, new_filename):> >try>:> >os.rename(filename, new_filename)> >print>(>'File '> +> filename>+> ' renamed to '> +> new_filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not rename file '> +> filename)> def> delete_file(filename):> >try>:> >os.remove(filename)> >print>(>'File '> +> filename>+> ' deleted successfully.'>)> >except> IOError:> >print>(>'Error: could not delete file '> +> filename)> if> __name__>=>=> '__main__'>:> >filename>=> 'example.txt'> >new_filename>=> 'new_example.txt'> >create_file(filename)> >read_file(filename)> >append_file(filename,>'This is some additional text. '>)> >read_file(filename)> >rename_file(filename, new_filename)> >read_file(new_filename)> >delete_file(new_filename)>

>

>

Výstup:

File example.txt created successfully. Hello, world! Text appended to file example.txt successfully. Hello, world! This is some additional text. File example.txt renamed to new_example.txt successfully. Hello, world! This is some additional text. File new_example.txt deleted successfully.>