Pavyzdžiai su tempfile moduliu
Pradėsime nuo paprastų „Python“ pavyzdžių tempfile modulį čia.
Laikinų failų kūrimas
Pirmas dalykas, kurio reikia norint išsaugoti laikinus duomenis, yra failai, kuriuose galime saugoti šiuos duomenis. Tai galima padaryti naudojant Laikinas failas () funkcija. Didžiausias šios funkcijos privalumas yra tai, kai failas sukuriamas naudojant šią funkciją, sistemos failų sistemoje nėra jokių nuorodų į šį failą, todėl kitiems procesams negalima pasiekti šių failų.
Pažvelkime į paprastą programą, kurioje naudojamas Laikinas failas () funkcija:
importuoti osimportuoti tempfile
# PID naudojimas failo pavadinime, siekiant geriau identifikuoti
failas = '/ tmp / linuxhint_% s.txt '% os.getpid ()
# Failo režimo teikimas
temp_file = atidaryti (failas, 'w + b')
bandyti:
spausdinti ('temp_file: 0'.formatas (temp_file))
spausdinti ('temp_file.vardas: 0 '.formatas (temp_file.vardas))
pagaliau:
temp_file.Uždaryti()
# Laikinas failas ištrinamas patys
os.pašalinti (failas)
spausdinti ('TemporaryFile metadata:')
temp_file = tempfile.Laikinas failas ()
bandyti:
spausdinti ('temp_file: 0'.formatas (temp_file))
spausdinti ('temp_file.vardas: 0 '.formatas (temp_file.vardas))
pagaliau:
# Išvalo failą, kai vadinamas uždarymas
temp_file.Uždaryti()
Štai ką mes grąžiname naudodami šią komandą:
Kuriamas laikinas failas
Šis failas ištrinamas, kai tik Uždaryti() funkcija iškviečiama tempfile nuoroda.
Skaitymas iš laikinos bylos
Net skaityti iš laikino failo yra lengva ir tai galima padaryti vienu metodu iškvietus tą patį modulį. Šios funkcijos privalumas yra tas tai padeda mums išvengti sudėtingų IO operacijų jei mums reikia šias operacijas atlikti rankiniu būdu. Čia yra programa, rodanti šią funkciją:
importuoti osimportuoti tempfile
tempFile = tempfile.Laikinas failas ()
bandyti:
spausdinti ('Duomenų rašymas į tempFile:')
tempFile.rašyti („Bet kokie duomenys gali būti čia.„)
tempFile.ieškoti (0)
spausdinti ('Skaitoma duomenų formos tempFile: \ n \ t 0'.formatas (tempFile.skaityti ()))
pagaliau:
tempFile.Uždaryti()
Pažiūrėkime šios komandos išvestį:
„Python“ skaitytas iš laikino failo
Visam laikinųjų failų tekstui buvo pateiktas vieno metodo iškvietimas.
Paprasto teksto rašymas į laikiną failą
Mūsų pirmiau nurodytose programose visi į failus įrašyti duomenys nebuvo paprasto paprasto teksto formato. Jei norime tai padaryti paprastoms teksto operacijoms, atidarę laikiną failą modifikacijoms galime tiesiog modifikuoti failo režimą:
importuoti tempfilefileMode = 'w + t'
su tempfile.Laikinas failas (mode = fileMode) kaip failas:
failą.scenarijų linijos (['Linux \ n', 'Ubuntu \ n'])
failą.ieškoti (0)
faile esančiam elementui:
spausdinti (prekė.rstrip ())
Štai ką mes grąžiname naudodami šią komandą:
Rašymas paprasto teksto į failą
Pavadintų laikinų failų kūrimas
Failai, kuriuos reikia apimti keliuose procesuose, turi būti įvardyti, kad procesas jų neištrintų, kai jis bus baigtas. Štai kaip galime sukurti laikiną pavadintą failą:
importuoti osimportuoti tempfile
tempFile = tempfile.„NamedTemporaryFile“ ()
bandyti:
spausdinti ('tempFile: 0'.formatas (tempFile))
spausdinti ('temp.tempFile: 0 '.formatas (tempFile.vardas))
pagaliau:
# Taip pat ištrinamas failas
tempFile.Uždaryti()
spausdinti ('Ar yra? : 0 '.formatas (os.kelias.egzistuoja (tempFile.vardas)))
Pažiūrėkime šios komandos išvestį:
Pavadinta tempfile
Jei neištrinsime failo, galime patikrinti jo egzistavimą kitoje programoje ir naudoti jį, jei jis egzistuoja nurodytoje vietoje.
Pateikti failo vardo galūnę ir priešdėlį
Norėdami lengvai identifikuoti failus, kurie priklauso mūsų pačių procesams failų sistemoje, failo pavadinime taip pat galime pritaikyti galūnę ir priešdėlį:
importuoti tempfiletempFile = tempfile.„NamedTemporaryFile“ (priesaga = '_ ubuntu',
priešdėlis = 'linuxhint_',
dir = '/ tmp',)
bandyti:
spausdinti ('tempFile:', tempFile)
spausdinti ('tempFile.pavadinimas: ', tempFile.vardas)
pagaliau:
tempFile.Uždaryti()
Štai ką mes grąžiname naudodami šią komandą:
Failo vardui pridedamas priešdėlis ir priesaga
Pateikėme tris parametrus metodui, kuris veikia kaip failo pavadinimo galūnė ir priešdėlis, kuris bus padarytas nurodytoje vietoje.
Išvada
Šioje pamokoje apžvelgėme, kaip galime naudoti „Python“ tempfile modulį tvarkydami laikinus failus savo kode. Skaitykite daugiau „Python“ pagrįstų įrašų čia.