Python

Python tempfile-modul

Python tempfile-modul
Ofte i vores programmer er vi nødt til at gemme nogle midlertidige oplysninger om programmets tilstand og objekter, der måske eller måske ikke lever ud over selve programmets tilstand. De data, der er gemt i disse filer, er muligvis ikke i den menneskeligt læsbare form eller endda i en form, der kan bruges af andre, men nogle programmer, algoritmer eller hackere kan finde en måde at få information ud af disse data, som kan ofre systemets sikkerhed. Så vi er nødt til at oprette logik, der opretter disse filer, skrive nogle data og derefter også slette filerne. Hvad hvis der var noget, der abstraherer så mange operationer i vores program? Ser ud til at der er et modul i Python til det samme, det tempfile modul.

Eksempler med tempfile-modul

Vi starter med enkle eksempler med Python tempfile modul her.

Oprettelse af midlertidige filer

Den første ting, der er nødvendig for at gemme midlertidige data, er de filer, hvor vi kan gemme disse data. Dette kan gøres ved hjælp af Midlertidig fil () fungere. Den største fordel med denne funktion er, når der oprettes en fil med denne funktion, der ikke oprettes links til denne fil i systemets filsystem, og det er derfor ikke muligt for andre processer at få adgang til disse filer.

Lad os se på et simpelt program, der gør brug af Midlertidig fil () fungere:

importer os
importer tempfile
# Brug af PID i filnavn for bedre identifikation
fil = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Tilbyder filtilstand
temp_file = åben (fil, 'w + b')
prøve:
udskriv ('temp_file: 0'.format (temp_file))
udskriv ('temp_file.navn: 0 '.format (temp_file.navn))
langt om længe:
temp_file.tæt()
# Sletning af midlertidig fil selv
os.fjern (fil)
print ('TemporaryFile Metadata:')
temp_file = tempfile.Midlertidig fil ()
prøve:
udskriv ('temp_file: 0'.format (temp_file))
udskriv ('temp_file.navn: 0 '.format (temp_file.navn))
langt om længe:
# Rydder op i filen, når tæt kaldes
temp_file.tæt()

Her er hvad vi kommer tilbage med denne kommando:

Opretter midlertidig fil

Denne fil slettes, så snart tæt() funktion kaldes på tempfile reference.

Læsning fra midlertidig fil

Selv læsning fra en midlertidig fil er let og kan udføres i en enkelt metodeopkald i det samme modul. Fordelen med denne funktion er, at det hjælper os med at undgå komplekse IO-operationer involveret, hvis vi har brug for at udføre disse operationer manuelt. Her er et program, der viser denne funktion i aktion:

importer os
importer tempfile
tempFile = tempfile.Midlertidig fil ()
prøve:
print ('Skrivning af data til tempFile:')
tempFile.skriv (b'Enhver data kan gå her.')
tempFile.søg (0)
print ('Læsning af formular tempFile: \ n \ t 0'.format (tempFile.Læs()))
langt om længe:
tempFile.tæt()

Lad os se output for denne kommando:

Python læses fra midlertidig fil

Al teksten i de midlertidige filer blev leveret tilbage med et enkelt metodeopkald.

Skrivning af almindelig tekst i midlertidig fil

I vores ovennævnte programmer var alle data, der blev skrevet til filer, ikke i form af simpelt almindeligt tekstformat. Hvis vi vil gøre det til enkle teksthandlinger, kan vi bare ændre filtilstanden, når vi åbner den midlertidige fil til ændringer:

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

Her er hvad vi kommer tilbage med denne kommando:

Skrivning af almindelig tekst i filen

Oprettelse af navngivne midlertidige filer

De filer, der skal spændes over flere processer, skal navngives, så en proces ikke sletter dem, når den er afsluttet. Sådan opretter vi en midlertidig navngivet fil:

importer os
importer tempfile
tempFile = tempfile.NamedTemporaryFile ()
prøve:
print ('tempFile: 0'.format (tempFile))
print ('temp.tempFile: 0 '.format (tempFile.navn))
langt om længe:
# Sletning af filen også
tempFile.tæt()
print ('Findes findes? : 0 '.format (os.sti.findes (tempFile.navn)))

Lad os se output for denne kommando:

Navngivet tempfile

Hvis vi ikke sletter filen, kan vi kontrollere, om den findes i et andet program, og bruge den, hvis den findes på det angivne sted.

Tilvejebringelse af filnavn Suffiks og præfiks

For nemt at identificere de filer, der hører til vores egne processer på filsystemet, kan vi også anvende Suffix og Prefix på filnavnet:

importer tempfile
tempFile = tempfile.NamedTemporaryFile (suffiks = '_ ubuntu',
præfiks = 'linuxhint_',
dir = '/ tmp',)
prøve:
print ('tempFile:', tempFile)
print ('tempFile.navn: ', tempFile.navn)
langt om længe:
tempFile.tæt()

Her er hvad vi kommer tilbage med denne kommando:

Anvender præfiks og suffiks til filnavnet

Vi leverede tre parametre til metoden, der fungerer som suffiks og præfiks for filnavnet, der vil blive gjort til den placering, vi specificerede.

Konklusion

I denne lektion så vi på, hvordan vi kan bruge Python tempfile-modul til at administrere midlertidige filer i vores kode. Læs flere Python-baserede indlæg her.

Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...
Top Oculus App Lab-spil
Hvis du er Oculus-headset-ejer, skal du være opmærksom på sideloading. Sideladning er processen med at installere ikke-butiksindhold på dit headset. S...
Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...