Python

Python tempfile-modul

Python tempfile-modul
Ofte i programmene våre trenger vi å lagre midlertidig informasjon om tilstanden til programmet og objekter som kanskje eller ikke lever utover selve programmets tilstand. Dataene som er lagret i disse filene, er kanskje ikke i den lesbare formen eller til og med i en form som kan brukes av alle andre enn noen programmer, algoritmer eller hackere, kan finne en måte å få informasjon ut av disse dataene som kan ofre sikkerheten til systemet. Så vi må lage logikk som oppretter disse filene, skrive litt data og deretter slette filene også. Hva om det var noe som tar bort så mange operasjoner i programmet vårt? Virker som det er en modul i Python for det samme, den tempfile modul.

Eksempler med tempfile-modul

Vi starter med enkle eksempler med Python tempfile modul her.

Opprette midlertidige filer

Det første som trengs for å lagre midlertidige data er filene der vi kan lagre disse dataene. Dette kan gjøres ved hjelp av Midlertidig fil () funksjon. Den største fordelen med denne funksjonen er når en fil opprettes med denne funksjonen, det blir ikke laget noen lenker til denne filen i systemets filsystem, og det er ikke mulig for andre prosesser å få tilgang til disse filene.

La oss se på et enkelt program som bruker Midlertidig fil () funksjon:

importer os
importer tempfile
# Bruke PID i filnavn for bedre identifikasjon
fil = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Tilby filmodus
temp_file = åpen (fil, 'w + b')
prøve:
skriv ut ('temp_file: 0'.format (temp_file))
skriv ut ('temp_file.navn: 0 '.format (temp_file.Navn))
endelig:
temp_file.Lukk()
# Slette midlertidig fil selv
os.fjerne (fil)
skriv ut ('TemporaryFile Metadata:')
temp_file = tempfile.Midlertidig fil ()
prøve:
skriv ut ('temp_file: 0'.format (temp_file))
skriv ut ('temp_file.navn: 0 '.format (temp_file.Navn))
endelig:
# Rydder opp i filen når close kalles
temp_file.Lukk()

Her er hva vi kommer tilbake med denne kommandoen:

Oppretter midlertidig fil

Denne filen slettes så snart Lukk() funksjon kalles på tempfile henvisning.

Lesing fra midlertidig fil

Det er enkelt å lese fra en midlertidig fil og kan gjøres i en enkeltmetodesamtale i samme modul. Fordelen med denne funksjonen er at det hjelper oss å unngå komplekse IO-operasjoner involvert hvis vi trenger å gjøre disse operasjonene manuelt. Her er et program som viser denne funksjonen i aksjon:

importer os
importer tempfile
tempFile = tempfile.Midlertidig fil ()
prøve:
skriv ut ('Skrive data til tempFile:')
tempFile.skriv (b'Any data kan gå her.')
tempFile.søk (0)
print ('Lesing av skjema tempFile: \ n \ t 0'.format (tempFile.lese()))
endelig:
tempFile.Lukk()

La oss se utdataene for denne kommandoen:

Python lest fra midlertidig fil

All teksten i de midlertidige filene ble levert tilbake med en enkeltmetodesamtale.

Skrive vanlig tekst i midlertidig fil

I de ovennevnte programmene var ikke alle data som ble skrevet til filer, i form av enkelt ren tekstformat. Hvis vi vil gjøre det for enkle tekstoperasjoner, kan vi bare endre filmodus når vi åpner den midlertidige filen for modifikasjoner:

importer tempfile
fileMode = 'w + t'
med tempfile.TemporaryFile (mode = fileMode) som fil:
fil.writelines (['Linux \ n', 'Ubuntu \ n'])
fil.søk (0)
for vare i filen:
skriv ut (vare.rstrip ())

Her er hva vi kommer tilbake med denne kommandoen:

Skrive ren tekst i filen

Opprette navngitte midlertidige filer

Filene som må spennes over flere prosesser må navngis slik at en prosess ikke sletter dem når den er fullført. Slik kan vi lage en midlertidig navngitt fil:

importer os
importer tempfile
tempFile = tempfile.NamedTemporaryFile ()
prøve:
print ('tempFile: 0'.format (tempFile))
utskrift ('temp.tempFile: 0 '.format (tempFile.Navn))
endelig:
# Slette filen også
tempFile.Lukk()
utskrift ('eksisterer? : 0 '.format (os.sti.eksisterer (tempFile.Navn)))

La oss se utdataene for denne kommandoen:

Navngitt tempfile

Hvis vi ikke sletter filen, kan vi sjekke om den finnes i et annet program og bruke den hvis den finnes på det angitte stedet.

Oppgi filnavn Suffiks og prefiks

For å enkelt identifisere filene som tilhører våre egne prosesser på filsystemet, kan vi også bruke Suffiks og Prefiks til filnavnet:

importer tempfile
tempFile = tempfile.NamedTemporaryFile (suffiks = '_ ubuntu',
prefiks = 'linuxhint_',
dir = '/ tmp',)
prøve:
print ('tempFile:', tempFile)
skriv ut ('tempFile.navn: ', tempFile.Navn)
endelig:
tempFile.Lukk()

Her er hva vi kommer tilbake med denne kommandoen:

Bruker prefiks og suffiks til filnavnet

Vi ga tre parametere til metoden som fungerer som suffiks og prefiks for filnavnet som vil bli gjort til stedet vi spesifiserte.

Konklusjon

I denne leksjonen så vi på hvordan vi kan bruke Python tempfile-modul for å administrere midlertidige filer i koden vår. Les flere Python-baserte innlegg her.

Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...
5 beste arkadespill for Linux
I dag er datamaskiner seriøse maskiner som brukes til spill. Hvis du ikke kan få den nye høye poengsummen, vil du vite hva jeg mener. I dette innlegge...