Pytonorm

Python tempfile-modul

Python tempfile-modul
Ofta i våra program behöver vi lagra tillfällig information om programmets tillstånd och objekt som kanske eller inte lever utöver själva programmets tillstånd. Data som sparas i dessa filer kanske inte är i läsbar form eller till och med i en form som kan användas av vem som helst utom vissa program, algoritmer eller hackare kan hitta ett sätt att få information ur dessa data som kan offra systemets säkerhet. Så vi måste skapa logik som skapar dessa filer, skriva lite data och sedan ta bort filerna också. Tänk om det fanns något som tar bort så många operationer i vårt program? Verkar som om det finns en modul i Python för samma, den tempfile modul.

Exempel med tempfile-modul

Vi börjar med enkla exempel med Python tempfile här.

Skapa tillfälliga filer

Det första som behövs för att spara tillfällig data är filerna där vi kan lagra dessa data. Detta kan göras med hjälp av TemporaryFile () fungera. Den största fördelen med den här funktionen är när en fil skapas med den här funktionen, inga länkar till den här filen skapas i systemets filsystem och det är därför inte möjligt för andra processer att komma åt dessa filer.

Låt oss titta på ett enkelt program som använder TemporaryFile () fungera:

importera os
importera tempfile
# Använda PID i filnamn för bättre identifiering
fil = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Tillhandahåller filläge
temp_file = öppen (fil, 'w + b')
Prova:
skriv ut ('temp_file: 0'.format (temp_file))
skriv ut ('temp_file.namn: 0 '.format (temp_file.namn))
till sist:
temp_file.stänga()
# Ta bort tillfällig fil själv
os.ta bort fil)
skriva ut ('TemporaryFile Metadata:')
temp_file = tempfile.TemporaryFile ()
Prova:
skriv ut ('temp_file: 0'.format (temp_file))
skriv ut ('temp_file.namn: 0 '.format (temp_file.namn))
till sist:
# Rensar upp filen när nära anropas
temp_file.stänga()

Här är vad vi får tillbaka med det här kommandot:

Skapar tillfällig fil

Den här filen raderas så snart stänga() funktionen kallas på tempfile referens.

Läser från tillfällig fil

Det är enkelt att läsa från en tillfällig fil och kan göras i en enda metodanrop i samma modul. Fördelen med denna funktion är att det hjälper oss att undvika komplexa IO-operationer involverade om vi behöver göra dessa operationer manuellt. Här är ett program som visar denna funktion i aktion:

importera os
importera tempfile
tempFile = tempfile.TemporaryFile ()
Prova:
skriv ut ('Skriva data till tempFile:')
tempFile.skriv (b'Any data kan gå här.')
tempFile.söka (0)
skriv ut ('Läser dataform tempFile: \ n \ t 0'.format (tempFile.läsa()))
till sist:
tempFile.stänga()

Låt oss se utdata för det här kommandot:

Python läst från tillfällig fil

All text i de tillfälliga filerna fick ett samtalsmetod.

Skriva vanlig text i tillfällig fil

I våra program ovan var all data som skrivits till filer inte i form av enkelt klartextformat. Om vi ​​vill göra det för enkla textåtgärder kan vi bara ändra filläget när vi öppnar den tillfälliga filen för modifieringar:

importera tempfile
fileMode = 'w + t'
med tempfile.TemporaryFile (mode = fileMode) som fil:
fil.skrivlinjer (['Linux \ n', 'Ubuntu \ n'])
fil.söka (0)
för post i filen:
skriva ut (artikel.rstrip ())

Här är vad vi får tillbaka med det här kommandot:

Skriva vanlig text i filen

Skapa namngivna tillfälliga filer

De filer som måste spännas över flera processer måste namnges så att en process inte tar bort dem när den är klar. Så här kan vi skapa en tillfällig namngiven fil:

importera os
importera tempfile
tempFile = tempfile.NamedTemporaryFile ()
Prova:
skriv ut ('tempFile: 0'.format (tempFile))
skriva ut ('temp.tempFile: 0 '.format (tempFile.namn))
till sist:
# Ta bort filen också
tempFile.stänga()
skriv ut ('Finns finns? : 0 '.format (os.väg.existerar (tempFile.namn)))

Låt oss se utdata för det här kommandot:

Namngivet tempfile

Om vi ​​inte tar bort filen kan vi kontrollera om den finns i ett annat program och använda den om den finns på den angivna platsen.

Tillhandahåller filnamn Suffix och prefix

För att enkelt identifiera de filer som tillhör våra egna processer i filsystemet kan vi också använda Suffix och Prefix på filnamnet:

importera tempfile
tempFile = tempfile.NamedTemporaryFile (suffix = '_ ubuntu',
prefix = 'linuxhint_',
dir = '/ tmp',)
Prova:
skriv ut ('tempFile:', tempFile)
skriv ut ('tempFile.namn: ', tempFile.namn)
till sist:
tempFile.stänga()

Här är vad vi får tillbaka med det här kommandot:

Tillämpar prefix och suffix i filnamnet

Vi tillhandahöll tre parametrar för metoden som fungerar som suffix och prefix för filnamnet som kommer att göras till den plats vi angav.

Slutsats

I den här lektionen tittade vi på hur vi kan använda Python tempfile-modul för att hantera tillfälliga filer i vår kod. Läs mer Python-baserade inlägg här.

Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...
Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...