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 osimportē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 osimportē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 tempfailufileMode = '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 osimportē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 tempfailutempFile = 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.