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:
- r: otevřít existující soubor pro operaci čtení.
- 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é.
- A: otevřít existující soubor pro operaci připojení. Nepřepíše stávající data.
- r+: Pro čtení a zápis dat do souboru. Předchozí data v souboru budou přepsána.
- w+: K zápisu a čtení dat. Přepíše stávající data.
- 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.>