Práce s objekty souborů: otevřete, přečtěte a zapisujte soubory do Pythonu
Soubory odkazují na základní datové typy Pythonu. Toto je rozhraní mezi kódem a pojmenovanými oblastmi paměti počítače. Soubory provádějí funkci "uchování" objektů. Umožňují vám ukládat veškeré informace při jejich následném vykládce a zpracování. Budeme se dívat na to, jak napsat do souboru v Pythonu a zpětně přečíst data praktickými příklady.
Obsah
Jak mohu otevřít soubor?
Práce s tímto typem dat začíná vestavěnou funkcí otevřenou. Vytvoří objekt souboru, který umožňuje komunikaci s externím dokumentem v počítači. Po volání funkce můžete provádět operace čtení nebo zápisu souborů v Pythonu.
Pro začátečníky se práce se soubory zdá být obtížná. Odcházejí od obvyklých řádků, čísel, slovníků. Pro interakci s nimi nejsou literály sekvencí nebo mapování používány, pouze metody.
Většina metod je zaměřena na provádění vstupních a výstupních informací, ale existují i ty specifické. Například příkaz output.flush (), který tlačí výstupní vyrovnávací paměti na disk. Ale začneme se učit, jak otevřít soubor.
První věcí je volat open (), předávat v závorce funkce, název externího souboru a způsob práce s ním:
- r - znamená, že režim čtení bude ve výchozím nastavení otevřen;
- w - zápis do souborů v Pythonu;
- a - psát informace na samém konci dokumentu;
- b - zpracování binárních souborů;
- znak "+" znamená čtení a zápis současně.
Důležitým pravidlem je, že všechny argumenty musí být zadány jako doslovné řetězce, tj. V uvozovkách a odděleny čárkami:
- > This_file = open ("C: odd", "w") # Příklad volání otevřené funkce IDE.
Jak používat soubory?
Jakmile je soubor otevřený, můžete použít všechny jeho metody. Obsah pro čtení bude reprezentován jako řetězce. Chcete-li psát soubory v Pythonu, musí mít informace také podobu řetězcových objektů.
Seznam nejčastěji používaných operací:
- input.read () - vrací informace jako jediný řetězec;
- input.readline () - přečtěte si následující řádek;
- input.readlines () - představuje soubor pro čtení úplně se seznamem řetězců;
- .write () - psát řádky;
- .writelines () - zaznamenávají všechny řádky;
- .close () - ručně zavřete dokument.
Funkce práce se soubory
Všechny informace obsažené v souborech jsou reprezentovány jako řetězcové objekty. Proto před zahájením zpracování je třeba provést konverzi dat. Použijte vestavěné metody int () nebo list () k tomu. A také výrazy pro formátování řetězců.
Nepoužíváte metodu uzavření. Ale při práci s flush jsou uvolněny prostředky OS a výstupní vyrovnávací paměti jsou vysunuty. Ve výchozím nastavení je výstup přes mezipaměti. Při zápisu do souboru v Pythonu se informace nepřecházejí okamžitě na disk, ale pouze v době uzavření.
Příklad zápisu do souboru
Podívejme se na příklad práce s textovým souborem v interaktivní relaci. Prvním krokem je otevření souboru v IDLE. Před vytvořením není nutné:
- > first_f = otevřít ("first_file.txt", "w")
- > first_fr.write ("Jakýkoli text n") # Napište řádky
- 12.
- > first_fr.write ("A opět jakýkoli text n")
- 20
- > first_file.close () # Zavřít;
- > first_f = otevřít ("first_file.txt")
- > first_read.readline () # Četli jsme, co je napsáno
- "Jakýkoli text n"
Po zapsání řádku do souboru vrátí Python 3.0 počet vložených znaků. V předchozí verzi se to nestalo. Příklad použil znak konce řádku n. Bez ní bude písem psát vše v pevném textu.
Chcete-li číst obsah souboru bez určení n na konci, použijte metodu čtení:
- > tisk (otevřít ("first_file.txt") číst ())
- jakýkoli text;
- a znovu jakýkoli text;
Každý řádek můžete vidět postupně iterací:
- > pro x v otevřené ("first_file.txt"):
- tisk (x, konec = «»)
- jakýkoliv text
- a znovu každý text # Každý nový řádek bude zobrazen odsazeně.
Uložení základních objektů Pythonu do souboru
V textovém souboru můžete uložit všechny vestavěné nebo ručně vytvořené objekty. Chcete-li psát soubory v Pythonu za řádek, musí být každý prvek převeden na řetězec. Nezapomeňte také, že metody neformátují data.
- > example_2 = otevřít ("second_file.txt", "w")
- > Seznam = [1.8, "r"]
- > C, B, P = 34, 90, 56
- > Str = "Soubor znaků"
- > example_2.write (str (Seznam) + " n")
- 12.
- > example_2.write ("% s,% s,% s n"% (C, B, P)
- 11
- > example_2.write (Pp + " n")
- 15
- > example_2.close ()
- > tisk (otevřít ("second_file.txt") číst ())
- [1, 8, "r"]
- 34, 90, 56
- znaková sada
V tomto příkladu nejprve vytvoříte nový souborový soubor "second_file.txt" pro zápis. Pět jmen je přiřazeno hodnotám seznamu, řetězci a celých čísel. Před nahráváním se každý objekt převede na řetězec. Na konci se soubor otevře pomocí vestavěné funkce tisku a metody čtení.
Stejným principem píše Python slovník do souboru. Je nutné volat funkci str a předat jej jako argument objektu. Nejtěžší věcí není zachránit data, ale extrahovat je a vrátit zpět do slovníků nebo čísel.
Převod řetězců na jazykové objekty pomocí metody readline:
- > L = otevřené ("second_file.txt")
- > F = L.readline ()
- > F
- «34, 90, 56 n»
- > Numbers = F.split (",") # Oddělit čárkami do podřetězců
- > Čísla
- ["34", "90", "56 n"]
- > Čísla = [int (x) pro x v číslech] # Převést celý seznam
- > Čísla
- [34, 90, 56]
Nahrávání objektů pomocí speciálních modulů
Standardní knihovna obsahuje modul nazvaný pickle. Jedná se o velmi užitečný nástroj pro psaní a získávání informací. Zvláště když nevěříte zdroji souboru.
Modul je univerzální nástroj, který automaticky formátuje a převádí data. Chcete-li napsat objekt libovolného typu (slovník), stačí projít nálevkou:
- > Slovník = {"osm": 8, "tři": 3, "nula": 0}
- > Slovník
- {"Osm": 8, "tři": 3, "nula": 0}
- > dokument = otevřít ("my_document.pkl", "wb")
- > míchat import
- > pickle.dump (slovník, dokument)
- > document.close ()
- > dokument = otevřít ("my_document.pkl", "rb")
- > D = vykládka (dokument)
- > D
- {"Osm": 8, "tři": 3, "nula": 0}
S modulem není potřeba ručně extrahovat a konvertovat data. Samotně provádí serializaci objektů v řetězci bajtů a zpět. Za tímto účelem se otevřou argumenty wb - write binary.
Stejně tak mouchy, "mohou" data mohou být pomocí modulu Python - JSON. Soubor je zapsán do souboru pomocí metody výpisu. Argumenty jsou uložené objekty, které jsou automaticky serializovány na řetězec JSON.
- > importovat json
- > Slovník = {"osm": 8, "tři": 3, "nula": 0}
- > s otevřenou ("my_document.json", "w") jako m_d:
- > json.dump (Slovník, m_d)
Existují také složitější způsoby práce se soubory. Například funkce skenování, organizace záznamových cyklů. Chcete-li zobrazit celý seznam metod, použijte pomocné nebo dirové funkce v interaktivní relaci. Také v arzenálu jazyka existují objekty podobné souborům, - zásuvkám, příkazovým skořápkům a proudům I / O.
- Co jsou soubory? Typy souborů
- PHP. Práce se soubory a adresáři
- Formát DOCM - než otevřít takové soubory?
- Rozšíření djvu. Jak se otevřít na Androidu a počítači?
- Formát cpi - co to je?
- O tom, jak vybrat všechny soubory ve složce
- Jak mohu otevřít soubory APK v počítači a jakým programům mohu udělat?
- Java: práce se soubory - psaní, čtení, mazání
- Správce souborů: historie výskytu termínu a přehled několika správců souborů
- Pak otevřete soubory TGA
- Práce se soubory. Jak změnit příponu souboru
- Atributy souboru
- Operační systém DOS: popis a funkce
- Programování v Pythonu: Seznam
- Vstup a výstup v Pythonu. Vstup a tisk
- Programování v Pythonu. Práce s řetězci
- Python: datové typy, podmínky, požadavky a příklady
- Co jsou objekty str v Pythonu?
- Podmíněné příkazy if / else v jazyce Python: syntaxe a aplikace
- Kontrola existence souboru PHP file_exists
- Jak sloučit soubory PDF