Python

Pythoni tempfile moodul

Pythoni tempfile moodul
Sageli peame oma programmides salvestama ajutist teavet programmi oleku ja objektide kohta, mis võivad elada või mitte elada väljaspool programmi enda olekut. Nendesse failidesse salvestatud andmed ei pruugi olla inimesele loetavas vormis või isegi kujul, mida saavad kasutada kõik, kuid mõned programmid, algoritmid või häkkerid võivad leida viisi, kuidas saada nendest andmetest teavet, mis võib süsteemi turvalisus. Niisiis, peame looma loogika, mis loob need failid, kirjutama mõned andmed ja seejärel ka failid kustutama. Mis oleks, kui meie programmis oleks midagi, mis eraldaks nii palju toiminguid? Tundub, et Pythonis on sama moodul tempfile moodul.

Näited tempfile mooduliga

Alustame lihtsate näidetega Pythonist tempfile moodul siin.

Ajutiste failide loomine

Ajutiste andmete salvestamiseks on kõigepealt vaja faile, kuhu saame neid andmeid salvestada. Seda saab teha kasutades TemporaryFile () funktsioon. Selle funktsiooni suurim eelis on see, kui fail luuakse selle funktsiooniga, süsteemi failisüsteemis sellele failile linke ei tehta ja seega pole teistel protsessidel võimalik nendele failidele juurde pääseda.

Vaatame lihtsat programmi, mis kasutab seda TemporaryFile () funktsioon:

impordi os
impordi tempfail
# PID-i kasutamine failinimes paremaks tuvastamiseks
fail = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Failirežiimi pakkumine
temp_file = avatud (fail, 'w + b')
proovige:
print ('temp_file: 0'.vorming (temp_fail))
print ('temp_fail.nimi: 0 '.formaat (temp_fail.nimi))
lõpuks:
temp_file.Sulge()
# Ajutise faili kustutamine ise
os.eemalda (fail)
print ('TemporaryFile metaandmed:')
temp_file = tempfail.TemporaryFile ()
proovige:
print ('temp_file: 0'.vorming (temp_fail))
print ('temp_fail.nimi: 0 '.formaat (temp_fail.nimi))
lõpuks:
# Puhastab faili, kui sulgemist kutsutakse
temp_file.Sulge()

Selle käsuga saame tagasi:

Ajutise faili loomine

See fail kustutatakse kohe, kui Sulge() funktsioon kutsutakse tempfile viide.

Lugemine ajutisest failist

Isegi ajutisest failist lugemine on lihtne ja seda saab teha ühes moodulis ühe meetodi abil. Selle funktsiooni eelis on see see aitab meil vältida keerukaid IO toiminguid kaasatud, kui peame neid toiminguid käsitsi tegema. Siin on programm, mis näitab seda funktsiooni töös:

impordi os
impordi tempfail
tempFile = tempefail.TemporaryFile ()
proovige:
print ('Andmete kirjutamine tempFile'i:')
tempFile.kirjuta (b'Misugused andmed võivad siia minna.')
tempFile.otsima (0)
print ('Andmevormi tempFile lugemine: \ n \ t 0'.formaat (tempFile.loe ()))
lõpuks:
tempFile.Sulge()

Vaatame selle käsu väljundit:

Python loeb ajutisest failist

Kogu ajutiste failide tekst saadeti tagasi ühe meetodi kutsega.

Lihtteksti kirjutamine ajutisse faili

Meie ülaltoodud programmides ei olnud kõik failidesse kirjutatud andmed lihtsa lihtteksti vormingus. Kui me tahame seda teha lihtsate tekstitoimingute jaoks, saame ajutise faili muutmiseks avada failirežiimi:

impordi tempfail
fileMode = 'w + t'
tempfailiga.TemporaryFile (mode = fileMode) failina:
faili.käsuread (['Linux \ n', 'Ubuntu \ n'])
faili.otsima (0)
failis oleva üksuse jaoks:
print (kirje.rstrip ())

Selle käsuga saame tagasi:

Lihtteksti kirjutamine faili

Nimetatud ajutiste failide loomine

Failid, mis peavad hõlmama mitut protsessi, tuleb nimetada nii, et protsess neid pärast lõpetamist ei kustutaks. Nii saame luua ajutise nimega faili:

impordi os
impordi tempfail
tempFile = tempefail.NamedTemporaryFile ()
proovige:
print ('tempFile: 0'.vorming (tempFile))
print ('temp.tempFile: 0 '.formaat (tempFile.nimi))
lõpuks:
# Ka faili kustutamine
tempFile.Sulge()
print ('Kas on olemas? : 0 '.formaat (os.tee.on olemas (tempFile.nimi)))

Vaatame selle käsu väljundit:

Nimega tempfile

Kui me faili ei kustuta, saame selle olemasolu mõnes teises programmis kontrollida ja kasutada seda, kui see määratletud asukohas olemas on.

Failinime sufiks ja eesliide pakkumine

Failide hõlpsaks tuvastamiseks, mis kuuluvad meie enda protsessidesse failisüsteemis, võime faili nimele lisada ka järelliite ja prefiksi:

impordi tempfail
tempFile = tempefail.NamedTemporaryFile (järelliide = '_ ubuntu',
eesliide = 'linuxhint_',
dir = '/ tmp',)
proovige:
print ('tempFile:', tempFile)
print ('tempFile.nimi: ', tempFile.nimi)
lõpuks:
tempFile.Sulge()

Selle käsuga saame tagasi:

Failinime eesliite ja järelliite rakendamine

Esitasime kolm parameetrit meetodile, mis toimib faili nime sufiksina ja prefiksina, mis tehakse meie määratud asukohaks.

Järeldus

Selles tunnis vaatasime, kuidas saaksime Pythoni tempfile moodulit kasutada oma koodi ajutiste failide haldamiseks. Loe rohkem Pythoni põhiseid postitusi siit.

Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...
Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...