Práce s objekty souborů: funkce otevření, čtení a zápis souborů do Pythonu

Soubory patří k základním typům dat jazyka Python. Toto je propojovací 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 jakékoli informace při jejich následném vykládce a zpracování. Uvažujeme o tom, jak zaznamenat soubor v Pythonu a zpětně číst data praktickými příklady.

Jak otevřít soubor?

Práce s tímto typem dat začíná vestavěnou otevřenou funkcí. 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 v souborech Pythonu.


Pro začátečníky se práce se soubory bude zdát komplikovaná. Odcházejí od obvyklých řádků, čísel, slovníků. Abychom s nimi komunikovali, literály sekvencí nebo odrazů se nepoužívají, pouze metody. Většina metod je zaměřena na implementaci vstupních a výstupních informací, ale jsou konkrétnější. Například instrukce output.flush (), která výstupy výstupních vyrovnávacích pamětí na disk. Ale pojďme začít tím, že zkoumáme, jak otevřít soubor. Za prvé je třeba volat open (), v přenosu závorky funkce externího názvu souboru a režimu s ním,
  • r - znamená, že výchozí režim otevřeného čtecího;
  • w - režim zápisu pro soubory v Pythonu;
  • a - pro zaznamenávání informací na konci dokumentu;
  • b - zpracování binárních souborů;
  • znaménko "+" znamená čtení a nahrávání ve stejnou dobu.
  • Důležitým pravidlem je, že všechny argumenty musí být specifikovány jako čáry řádků, tj. V párech a čárkách:


  • This_file = open ("C: odd" integrované vývojové prostředí.
  • Jak používat soubory?

    Jakmile je soubor otevřen, můžete použít všechny jeho metody. Obsah pro čtení bude prezentován jako řádky. Chcete-li psát soubory v Pythonu, měly by mít informace také formu řetězcových objektů. Seznam nejčastěji používaných operací:
  • input.read () - vrací informace jako jeden řádek;
  • input.readline () - přečtěte si další řádek;
  • input.readlines () - předloží soubor pro čtení úplně se seznamem řádků;
  • .write () - řádky záznamu;
  • .writelines () - napište všechny řádky;
  • .close () - ručně zavřete dokument.
  • Funkce práce se soubory

    Veškeré informace obsažené uvnitř souborů jsou prezentovány jako objekt řetězce. Proto před zahájením zpracování je nutné převést data. Pro tento účel použijte vestavěné metody int () nebo list (). Také výrazy pro formátování řetězců. Použití metody zavření je volitelná. Ale při práci s propojením jsou uvolněny zdroje operačního systému a výstupní vyrovnávací paměti jsou vytlačeny. Ve výchozím nastavení je výstup přes mezipaměti. Když je položka vložena do souboru v Pythonu, informace se okamžitě nedostanou 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 souboruinteraktivní relace. Prvním krokem je otevření souboru v IDLE.
  • first_f = open ("first_file.txt", "w")
  • first_f.write ("libovolný text") # Napište řádek
  • ]
  • first_f.write ("A opět jakýkoliv text")
  • 20
  • first_f.close () # Closed;
  • first_f = open ("first_file.txt")
  • first_f.readline () # Přečtěte si, co je napsáno
  • V souboru Python 3.0 vrátí počet vložených znaků. To se nestane v předchozí verzi. V příkladu byl použit znak konce řádku n. Bez ní metoda zápisu zapíše celý pevný text.
    Pokud si přejete přečíst obsah souboru bez načtení n na konci, použijte následující:
  • print (open ("first_file.txt") Číst ())
  • a znovu text;
  • Můžete zobrazit každý řádek podle jeho iterace:
  • pro x v otevřené ("first_file.txt"):
  • tisk (x, konec = "")
  • - jaký text
  • a znovu text # Každý nový řádek bude odsazen.
  • Ukládání Python Language Basic Objects

    Můžete uložit libovolný vestavěný nebo ručně vytvořený objekt do textového souboru. Pro postupné zaznamenávání souborů v Pythonu musí být každá položka předem převedena na řádek. Nezapomeňte také, že metody neformátují data.
  • List = [1,8, "r"]
  • C, B, P = 349056
  • Strana = "Znaková sada"
  • Example_2.write (str (List) + "n")
  • Example_2.write (Strana + «n»)
  • 15
  • Příklad_2.close ()
  • tisk (otevřít ("second_file.txt") číst ())
  • 349056 []
  • znaková sada
  • V tomto příkladu je nejprve vytvořen nový souborový soubor "second_file.txt", který má být napsán. Pět jmen je přiřazeno hodnotě seznamu, řetězce 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 Python zaznamená záznam do souboru do slovníku. Musíte volat funkci str a předat ji jako objekt argumentu. Nejtěžší věcí není zachránit data, ale získat je a převést zpět do slovníků nebo čísel. Transformace řetězce do objektů jazyka pomůže metodě readline:
  • L = open ("second_file.txt")
  • F = L. readline "7490"
  • Čísla = F. rozdělené (",") # com rozdělené na podřetězce
  • Čísla
  • ("34", "90"Čísla
  • [34, 90, 56]
  • Čísla = [int (x) pro x v číslech] Objekty používající speciální moduly

    Standardní knihovna obsahuje modul nazvaný pickle. Jedná se o velmi užitečný nástroj pro nahrávání a načítání informací. Zvláště když nevěříte zdroji souboru. Modul je všestranný nástroj, který automaticky formátuje a převádí data. Chcete-li napsat objekt libovolného typu (slovníku), stačí jej předat k vyčištění:
  • Slovník
  • {«osm»: 8 «tři»: 3 «nula»: 0}
  • dokument = otevřeno («mjdocument.pkl», «wb»)
  • ]
  • roosol.dump (Slovník, dokument)
  • dokument.close)
  • dokumentu (= otevřený («moy_dokument.pkl», «rb»)
  • D = pickle.load (dokument)
  • D
  • { „osm“ 8 „tři“ 3 „nula“: 0}
  • V tomto modulu není potřeba extrahovat a transformaci dat ručně. On sám provádí serializaci objektů v řadě bajtů a zpět. Binární příkaz wb-write je určen v otevřených argumentech. Stejně jako u turbíny můžete "zachovat" data pomocí modulu Python - JSON. Záznam do souboru se provádí metodou výpisu. Argumenty zahrnují uložené objekty, které jsou automaticky serializovány do řetězce ve formátu JSON.
  • import json
  • slovník = { "osm" 8 "tři" 3 "nula": 0}
  • s otevřenými („moy_dokument.json», «w») jako m_d
  • json.dump (slovník, m_d)
  • Existují sofistikovanější způsoby, jak pracovat se soubory. Například skenování, organizace záznamových cyklů. Chcete-li zobrazit úplný seznam metod, použijte pomocné nebo dirové funkce v interaktivní relaci. Také v arzenálu jazyků existují objekty, které jsou podobné souborům - zásuvkám, skořápkům a proudům I /O.

    Související publikace