Voorbeelden met tempfile-module
We beginnen met eenvoudige voorbeelden met de Python tempfile module hier.
Tijdelijke bestanden maken
Het eerste dat nodig is om tijdelijke gegevens op te slaan, zijn de bestanden waarin we deze gegevens kunnen opslaan. Dit kan met behulp van de Tijdelijk bestand() functie. Het grootste voordeel van deze functie is dat wanneer een bestand met deze functie wordt gemaakt, er geen koppelingen naar dit bestand worden gemaakt in het bestandssysteem van het systeem en het dus niet mogelijk is voor andere processen om toegang te krijgen tot deze bestanden.
Laten we eens kijken naar een eenvoudig programma dat gebruik maakt van de Tijdelijk bestand() functie:
importeer ostijdelijke bestand importeren
# PID gebruiken in bestandsnaam voor betere identificatie
file = '/tmp/linuxhint_%s.txt' % os.getpid()
# Bestandsmodus verstrekken
temp_file = open(bestand, 'w+b')
proberen:
print('temp_file: 0'.formaat (temp_file))
print('temp_file.naam: 0'.format(temp_file.naam))
Tenslotte:
temp_file.dichtbij()
# Tijdelijk bestand zelf verwijderen
os.bestand verwijderen)
print('Tijdelijke bestandsmetadata:')
temp_file = tempfile.Tijdelijk bestand()
proberen:
print('temp_file: 0'.formaat (temp_file))
print('temp_file.naam: 0'.format(temp_file.naam))
Tenslotte:
# Ruimt het bestand op wanneer close wordt aangeroepen
temp_file.dichtbij()
Dit is wat we terugkrijgen met deze opdracht:
Tijdelijk bestand maken
Dit bestand wordt verwijderd zodra de dichtbij() functie wordt aangeroepen op de tempfile referentie.
Lezen uit tijdelijk bestand
Zelfs het lezen van een tijdelijk bestand is eenvoudig en kan worden gedaan in een enkele methodeaanroep in dezelfde module. Het voordeel van deze functie is dat: het helpt ons om complexe IO-bewerkingen te vermijden betrokken als we deze bewerkingen handmatig moeten uitvoeren. Hier is een programma dat deze functie in actie laat zien:
importeer ostijdelijke bestand importeren
tempFile = tempfile.Tijdelijk bestand()
proberen:
print('Gegevens schrijven naar tempFile:')
tempFile.schrijven (b'Alle gegevens kunnen hier komen.')
tempFile.zoeken(0)
print('Gegevens van tempFile lezen: \n\t0'.formaat(tempFile.lezen()))
Tenslotte:
tempFile.dichtbij()
Laten we de uitvoer voor deze opdracht bekijken:
Python gelezen uit tijdelijk bestand
Alle tekst in de tijdelijke bestanden werd teruggegeven met een enkele methodeaanroep.
Tekst zonder opmaak in tijdelijk bestand schrijven
In onze bovenstaande programma's waren alle gegevens die naar bestanden werden geschreven niet in de vorm van een eenvoudig tekstformaat. Als we dit willen doen voor eenvoudige tekstbewerkingen, kunnen we de bestandsmodus gewoon wijzigen wanneer we het tijdelijke bestand openen voor wijzigingen:
tijdelijke bestand importerenfileMode = 'w+t'
met tempfile.TemporaryFile(mode=fileMode) als bestand:
het dossier.writelines(['Linux\n', 'Ubuntu\n'])
het dossier.zoeken(0)
voor item in bestand:
print(item).rstrip())
Dit is wat we terugkrijgen met deze opdracht:
Tekst zonder opmaak in het bestand schrijven
Benoemde tijdelijke bestanden maken
De bestanden die over meerdere processen moeten worden verspreid, moeten een naam hebben, zodat een proces ze niet verwijdert wanneer het is voltooid. Hier is hoe we een tijdelijk benoemd bestand kunnen maken:
importeer ostijdelijke bestand importeren
tempFile = tempfile.NamedTemporaryFile()
proberen:
print('tempFile: 0'.formaat (tempFile))
print('temp.tempFile : 0'.formaat(tempFile.naam))
Tenslotte:
# Ook het bestand verwijderen
tempFile.dichtbij()
print('Bestaat wel? : 0'.formaat (os.pad.bestaat (tempFile.naam)))
Laten we de uitvoer voor deze opdracht bekijken:
Genoemd tempbestand
Als we het bestand niet verwijderen, kunnen we het bestaan ervan in een ander programma controleren en het gebruiken als het op de opgegeven locatie bestaat.
Achtervoegsel en voorvoegsel voor bestandsnaam opgeven
Om gemakkelijk de bestanden te identificeren die tot onze eigen processen op het bestandssysteem behoren, kunnen we ook Suffix en Prefix op de bestandsnaam toepassen:
tijdelijke bestand importerentempFile = tempfile.NamedTemporaryFile(suffix='_ubuntu',
prefix='linuxhint_',
dir='/tmp',)
proberen:
print('tempFile:', tempFile)
print('tempFile'.naam:', tempFile.naam)
Tenslotte:
tempFile.dichtbij()
Dit is wat we terugkrijgen met deze opdracht:
Voor- en achtervoegsel toepassen op bestandsnaam
We hebben drie parameters gegeven aan de methode die fungeert als achtervoegsel en voorvoegsel voor de bestandsnaam die zal worden gemaakt op de locatie die we hebben opgegeven.
Conclusie
In deze les hebben we gekeken hoe we de Python-tempfile-module kunnen gebruiken om tijdelijke bestanden in onze code te beheren. Lees hier meer op Python gebaseerde berichten.