Krajta

Modul tempfile Pythonu

Modul tempfile Pythonu
Často v našich programech musíme ukládat dočasné informace o stavu programu a objektech, které mohou nebo nemusí žít mimo stav samotného programu. Data uložená v těchto souborech nemusí být v podobě čitelné člověkem nebo dokonce ve formě, kterou může použít kdokoli, ale některé programy, algoritmy nebo hackeři mohou najít způsob, jak z těchto dat získat informace, které mohou obětovat zabezpečení systému. Musíme tedy vytvořit logiku, která tyto soubory vytvoří, zapsat některá data a poté soubory také smazat. Co kdyby v našem programu bylo něco, co abstrahuje tolik operací? Vypadá to, že v Pythonu existuje modul pro stejné, dočasný soubor modul.

Příklady s modulem tempfile

Začneme jednoduchými příklady s Pythonem dočasný soubor modul zde.

Vytváření dočasných souborů

První věcí potřebnou k uložení dočasných dat jsou soubory, kam můžeme tato data uložit. To lze provést pomocí TemporaryFile () funkce. Největší výhodou této funkce je, když je soubor vytvořen pomocí této funkce, v systému souborů systému nejsou vytvářeny žádné odkazy na tento soubor, takže není možné, aby k těmto souborům přistupovaly jiné procesy.

Podívejme se na jednoduchý program, který využívá TemporaryFile () funkce:

import os
import dočasného souboru
# Použití PID v názvu souboru pro lepší identifikaci
file = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Poskytování režimu souborů
temp_file = otevřít (soubor, 'w + b')
Snaž se:
print ('temp_file: 0'.format (temp_file))
print ('temp_file.jméno: 0 '.formát (temp_file.název))
Konečně:
temp_file.zavřít()
# Odstranění dočasného souboru sami
os.odstranit (soubor)
print ('TemporaryFile Metadata:')
temp_file = tempfile.TemporaryFile ()
Snaž se:
print ('temp_file: 0'.format (temp_file))
print ('temp_file.jméno: 0 '.formát (temp_file.název))
Konečně:
# Vymaže soubor, když je zavřeno zavření
temp_file.zavřít()

S tímto příkazem se vrátíme:

Vytváření dočasného souboru

Tento soubor je odstraněn, jakmile zavřít() funkce je volána na dočasný soubor odkaz.

Čtení z dočasného souboru

I čtení z dočasného souboru je snadné a lze jej provést v jediném volání metody ve stejném modulu. Výhodou této funkce je, že pomáhá nám vyhnout se složitým operacím IO pokud potřebujeme tyto operace provádět ručně. Zde je program zobrazující tuto funkci v akci:

import os
import dočasného souboru
tempFile = tempfile.TemporaryFile ()
Snaž se:
print ('Zápis dat do tempFile:')
tempFile.write (b'Any data can go here.')
tempFile.hledat (0)
print ('Čtení datového formuláře tempFile: \ n \ t 0'.formát (tempFile.číst()))
Konečně:
tempFile.zavřít()

Podívejme se na výstup tohoto příkazu:

Python načtený z dočasného souboru

Veškerý text v dočasných souborech byl poskytnut zpět pomocí jediného volání metody.

Zápis prostého textu do dočasného souboru

V našich výše uvedených programech neměla všechna data zapsaná do souborů formu jednoduchého formátu prostého textu. Pokud to chceme udělat pro jednoduché textové operace, můžeme pouze upravit režim souboru, když otevřeme dočasný soubor pro úpravy:

import dočasného souboru
fileMode = 'w + t'
s dočasným souborem.TemporaryFile (mode = fileMode) jako soubor:
soubor.spisové řádky (['Linux \ n', 'Ubuntu \ n'])
soubor.hledat (0)
pro položku v souboru:
tisk (položka.rstrip ())

S tímto příkazem se vrátíme:

Zápis prostého textu do souboru

Vytváření dočasných souborů s názvem

Soubory, které je třeba rozložit na více procesů, musí být pojmenovány, aby je proces po dokončení neodstranil. Zde můžeme vytvořit dočasný pojmenovaný soubor:

import os
import dočasného souboru
tempFile = tempfile.NamedTemporaryFile ()
Snaž se:
print ('tempFile: 0'.formát (tempFile))
print ('temp.tempFile: 0 '.formát (tempFile.název))
Konečně:
# Vymazání souboru také
tempFile.zavřít()
print ('Existuje? : 0 '.formát (os.cesta.existuje (tempFile.název)))

Podívejme se na výstup tohoto příkazu:

Pojmenovaný dočasný soubor

Pokud soubor nevymažeme, můžeme zkontrolovat jeho existenci v jiném programu a použít jej, pokud existuje na zadaném místě.

Poskytnutí názvu souboru Přípona a Předpona

Pro snadnou identifikaci souborů, které patří k našim vlastním procesům v systému souborů, můžeme na název souboru použít také příponu a předponu:

import dočasného souboru
tempFile = tempfile.NamedTemporaryFile (přípona = '_ ubuntu',
prefix = 'linuxhint_',
dir = '/ tmp',)
Snaž se:
print ('tempFile:', tempFile)
print ('tempFile.name: ', tempFile.název)
Konečně:
tempFile.zavřít()

S tímto příkazem se vrátíme:

Použití předpony a přípony na název souboru

Metodě, která funguje jako přípona a předpona pro název souboru, jsme poskytli tři parametry, které budou vytvořeny v místě, které jsme určili.

Závěr

V této lekci jsme se podívali na to, jak můžeme ke správě dočasných souborů v našem kódu využít modul tempfile Pythonu. Přečtěte si více příspěvků založených na Pythonu zde.

WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...