Otevření a zavření souboru
Čtení dat z textového souboru s názvem „data.txt “, musíte použít metodu„ open “, která je součástí oficiálních sestavení Pythonu. Zkontrolujte ukázkový kód níže:
f = open ('data.txt ',' r ')F.zavřít()
První příkaz otevírá „data.txt ”soubor v režimu„ r “(pouze pro čtení). Metoda „open“ přijímá název souboru a režim pro zacházení se souborem jako argumenty. Kromě režimu „r“ existují i další režimy, které budou vysvětleny později. Fragment kódu výše nespustí žádné operace s otevřeným souborem. Metoda „zavřít“ se používá k čistému uzavření otevřeného souboru, aby bylo možné uvolnit paměť, a aby nedošlo k poškození dat v otevřeném souboru, ke kterému může někdy dojít, pokud soubor není správně uzavřen.
Místo použití metody „open“ pro otevírání a zavírání souborů jej můžete kombinovat s klíčovým slovem „with“ a použít příkaz „with open“.
s otevřenými ('data.txt ',' r ') jako f:složit
Hlavní výhodou použití příkazu „s otevřeným“ je to, že tlumočník automaticky bezpečně zavře otevřený soubor, když je blok kódu „s otevřeným“ kompletně analyzován. Ačkoli sběrač odpadků v Pythonu automaticky po určité době zavře otevřené soubory podle přednastavených pravidel, příkazy „s otevřeným“ zajistí, že soubor bude čistě uzavřen, jakmile bude dokončen blok kódu, aby se uvolnily zdroje.
Čtení řádků textového souboru
Chcete-li číst obsah souboru, použijte ukázku kódu níže:
s otevřenými ('data.txt ',' r ') jako f:data = f.číst()
tisk (data)
Například pokud „data.Soubor txt ”má 1-10 čísel, každé na novém řádku, po spuštění výše uvedeného kódu získáte následující výstup:
12
3
4
5
6
7
8
9
10
Celý výpis dat „dat.Soubor txt “je uložen v proměnné„ data “. Chcete-li číst řádky do seznamu, můžete použít následující ukázky kódu:
s otevřenými ('data.txt ',' r ') jako f:data = f.readlines ()
tisk (data) s otevřenými ('data.txt ',' r ') jako f:
data = seznam (f)
tisk (data)
Pamatujte, že použití výše uvedených úryvků vám může na konci každého prvku v seznamu získat znak „\ n“ (nový řádek). Chcete-li tyto znaky nového řádku odebrat, bude pravděpodobně nutné procházet seznamem. Můžete vytvořit nový seznam i odstranit znaky nového řádku pomocí následujícího kódu:
data_list = []s otevřenými ('data.txt ',' r ') jako f:
pro řádek v f:
data_list.připojit (řádek.pás())
tisk (data_list)
Spuštěním výše uvedeného kódu získáte následující výstup:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Zápis dat do otevřeného souboru
Chcete-li zapsat data do souboru, který se otevírá pomocí příkazu „with open“, budete muset jako argument zadat jiný režim otevírání. Zde jsou některé z režimů:
- 'a' - slouží k připojení dat na konci otevřeného souboru, vytvoří nový soubor, pokud neexistuje
- 'w' - vymaže obsah otevřeného souboru a zapíše nová data, vytvoří nový soubor, pokud neexistuje
- 'r' - režim jen pro čtení (výchozí režim, pokud není zadán žádný argument)
- 'r +' - používá se jak pro čtení, tak pro zápis (počáteční pozice je na začátku souboru)
- 'b' - soubor je otevřen v binárním režimu (užitečné pro netextové binární soubory), lze jej kombinovat s jinými režimy
- 'a +' - používá se ke čtení a připojování, vytvoří nový soubor, pokud neexistuje
- 'w +' - používá se pro čtení a zápis, vytvoří nový soubor, pokud neexistuje
Níže jsou uvedeny některé fragmenty kódu, které k zápisu dat používají různé režimy.
Chcete-li při mazání stávajících dat zapsat nový obsah do textového souboru, použijte následující ukázku:
s otevřenými ('data.txt ',' w ') jako f:F.write ("1 \ n2")
Po spuštění výše uvedeného fragmentu bude v „datech“ 1-10 čísel.Soubor txt ”by měl být nahrazen dvěma novými řádky.
Chcete-li přidat řádky na začátek textového souboru, musíte se pomocí metody „hledat“ vrátit na počáteční pozici vyrovnávací paměti souboru:
s otevřenými ('data.txt ',' r + ') jako f:data = f.číst()
F.hledat (0)
F.write ("- 1 \ n0 \ n")
F.zápis (data)
Po spuštění výše uvedeného fragmentu budou do horních dvou řádků v „datech“ přidána čísla -1 a 0.txt ”soubory.
Chcete-li připojit data na konec souboru, použijte následující ukázku:
s otevřenými ('data.txt ',' a ') jako f:F.write ("11 \ n12")
Po spuštění výše uvedeného úryvku bude na konec souboru přidáno 11 a 12 čísel.
Závěr
Integrované třídy a metody v Pythonu poskytují robustní způsob zpracování textových souborů. Pouze s několika řádky kódu můžete manipulovat s existujícími daty v souboru a vložit nové řádky.