Python

Python tempfile modulis

Python tempfile modulis
Bieži vien mūsu programmās mums ir jāuzglabā kāda pagaidu informācija par programmas stāvokli un objektiem, kas varētu dzīvot vai nedzīvot ārpus pašas programmas stāvokļa. Šajos failos saglabātie dati var nebūt cilvēkiem lasāmā formā vai pat tādā formā, kuru var izmantot ikviens, taču dažas programmas, algoritmi vai hakeri var atrast veidu, kā iegūt no šiem datiem informāciju, kas var upurēt sistēmas drošība. Tātad, mums ir jāizveido loģika, kas izveido šos failus, jāuzraksta daži dati un pēc tam arī jāizdzēš faili. Kā būtu, ja mūsu programmā būtu kaut kas, kas abstrahētu tik daudz darbību? Šķiet, ka Python ir modulis tam pašam tempfile modulis.

Piemēri ar tempfile moduli

Mēs sāksim ar vienkāršiem piemēriem ar Python tempfile modulis šeit.

Pagaidu failu veidošana

Pirmā lieta, kas nepieciešama pagaidu datu saglabāšanai, ir faili, kuros mēs varam saglabāt šos datus. To var izdarīt, izmantojot TemporaryFile () funkciju. Lielākā šīs funkcijas priekšrocība ir tad, kad fails tiek izveidots ar šo funkciju, sistēmas failu sistēmā netiek izveidotas saites uz šo failu, un tāpēc citiem procesiem nav iespējams piekļūt šiem failiem.

Apskatīsim vienkāršu programmu, kurā tiek izmantots TemporaryFile () funkcija:

importēt os
importēt tempfailu
# PID izmantošana faila nosaukumā labākai identifikācijai
fails = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Faila režīma nodrošināšana
temp_file = atvērts (fails, 'w + b')
mēģiniet:
drukāt ('temp_file: 0'.formāts (temp_file))
print ('temp_file.nosaukums: 0 '.formāts (temp_file.nosaukums))
visbeidzot:
temp_file.aizvērt ()
# Pagaidu faila dzēšana pati
os.noņemt (fails)
drukāt ('TemporaryFile Metadata:')
temp_file = tempfile.TemporaryFile ()
mēģiniet:
drukāt ('temp_file: 0'.formāts (temp_file))
print ('temp_file.nosaukums: 0 '.formāts (temp_file.nosaukums))
visbeidzot:
# Notīra failu, kad tiek izsaukts aizvēršana
temp_file.aizvērt ()

Lūk, ko mēs atgūsim ar šo komandu:

Pagaidu faila izveide

Šis fails tiek izdzēsts, tiklīdz aizvērt () funkcija tiek izsaukta uz tempfile atsauce.

Lasīšana no pagaidu faila

Pat lasīšana no pagaidu faila ir vienkārša, un to var izdarīt ar vienas metodes izsaukumu tajā pašā modulī. Šīs funkcijas priekšrocība ir tā tas mums palīdz izvairīties no sarežģītām IO operācijām iesaistītas, ja mums šīs darbības jāveic manuāli. Šeit ir programma, kas parāda šo funkciju darbībā:

importēt os
importēt tempfailu
tempFile = tempfile.TemporaryFile ()
mēģiniet:
drukāt ('Datu rakstīšana tempFile:')
tempFile.rakstīt (b'Jebkuri dati var nonākt šeit.')
tempFile.meklēt (0)
print ('Datu veidnes tempFile lasīšana: \ n \ t 0'.formāts (tempFile.lasīt ()))
visbeidzot:
tempFile.aizvērt ()

Apskatīsim šīs komandas izvadi:

Python nolasa no pagaidu faila

Viss pagaidu failu teksts tika atgriezts ar vienas metodes izsaukumu.

Vienkārša teksta rakstīšana pagaidu failā

Mūsu iepriekš minētajās programmās visi failos ierakstītie dati nebija vienkārša vienkārša teksta formātā. Ja mēs vēlamies to izdarīt vienkāršu teksta darbību gadījumā, atverot pagaidu failu modifikācijām, faila režīmu varam vienkārši mainīt:

importēt tempfailu
fileMode = 'w + t'
ar tempfile.TemporaryFile (mode = fileMode) kā fails:
failu.writelines (['Linux \ n', 'Ubuntu \ n'])
failu.meklēt (0)
failā esošajam vienumam:
izdrukāt.rstrip ())

Lūk, ko mēs atgūsim ar šo komandu:

Vienkārša teksta ierakstīšana failā

Nosauktu pagaidu failu izveidošana

Faili, kas jāaptver vairākos procesos, jānosauc tā, lai process pēc pabeigšanas tos neizdzēstu. Lūk, kā mēs varam izveidot pagaidu nosaukumu failu:

importēt os
importēt tempfailu
tempFile = tempfile.NamedTemporaryFile ()
mēģiniet:
print ('tempFile: 0'.formāts (tempFile))
drukāt ('temp.tempFile: 0 '.formāts (tempFile.nosaukums))
visbeidzot:
# Dzēšot arī failu
tempFile.aizvērt ()
print ('Vai pastāv? : 0 '.formāts (os.ceļš.pastāv (tempFile.nosaukums)))

Apskatīsim šīs komandas izvadi:

Nosaukts tempfile

Ja neizdzēšam failu, mēs varam pārbaudīt tā esamību citā programmā un izmantot to, ja tas pastāv norādītajā vietā.

Faila nosaukuma sufikss un prefikss

Lai viegli identificētu failus, kas pieder mūsu pašu procesiem failu sistēmā, faila nosaukumam varam piemērot arī sufiksu un prefiksu:

importēt tempfailu
tempFile = tempfile.NamedTemporaryFile (sufikss = '_ ubuntu',
prefikss = 'linuxhint_',
dir = '/ tmp',)
mēģiniet:
drukāt ('tempFile:', tempFile)
print ('tempFile.nosaukums: ', tempFile.nosaukums)
visbeidzot:
tempFile.aizvērt ()

Lūk, ko mēs atgūsim ar šo komandu:

Faila nosaukumam tiek izmantots prefikss un sufikss

Mēs sniedzām trīs parametrus metodei, kas faila nosaukumam darbojas kā sufikss un prefikss, kas tiks padarīts par mūsu norādīto vietu.

Secinājums

Šajā nodarbībā mēs apskatījām, kā mēs varam izmantot Python tempfile moduli, lai pārvaldītu pagaidu failus mūsu kodā. Lasiet vairāk uz Python balstītas ziņas šeit.

Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...
Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...
WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...