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:
- 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í.
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!!!'> )> |
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.