Sådan kontrolleres, at en fil åbnes eller lukkes i Python

How Check File Is Opened



Filen bruges til at gemme data permanent. Arbejde med en fil er en meget almindelig opgave for ethvert programmeringssprog. Mange indbyggede funktioner findes i Python for at oprette, åbne, læse, skrive og lukke filen. Der kan oprettes to typer filer til lagring af data. Disse er tekstfiler og binære filer. Enhver fil skal åbnes før læsning eller skrivning. Det åben() funktion bruges i Python til at åbne en fil. Bruger åben() funktion er en måde at kontrollere, at en bestemt fil åbnes eller lukkes. Hvis åben() funktion åbner en tidligere åbnet fil, derefter en IOfejl vil blive genereret. En anden måde at kontrollere, at en fil åbnes eller lukkes, er at kontrollere værdierne for lukket egenskaben for filhåndteringsobjektet. Ved brug af omdøb () funktion er en anden måde at kontrollere, at filen åbnes eller lukkes. Der er blevet vist forskellige måder at kontrollere, om en fil åbnes eller lukkes i Python i denne vejledning.

Opret en fil til kontrol:

Du kan bruge en eksisterende fil eller oprette en ny fil til at teste den eksempelkode, der vises i denne vejledning. En ny tekstfil hedder clients.txt er blevet oprettet med følgende indhold til brug senere i den næste del af selvstudiet.







ID Navn E -mail
01 Jony Liver [e -mail beskyttet]
02 Manik Hossain [e -mail beskyttet]
03 Neha Akter [e -mail beskyttet]
04 Janatul Ferdous [e -mail beskyttet]
05 Helal Uddin [e -mail beskyttet]



Eksempel-1: Kontroller, at filen er åbnet eller ej ved hjælp af IOError

IOfejl genereres, når funktionen open () kaldes til at åbne en fil, der er blevet åbnet før. Opret en python -fil med følgende script for at kontrollere, om en fil åbnes eller ej ved hjælp af prøv-undtagen blok. Her vil ethvert eksisterende filnavn blive taget som input og åbnet for læsning. Derefter kaldes funktionen open () igen for at åbne den samme fil, der åbner en IOError og udskriver fejlmeddelelsen.



# Tag filnavnet for at kontrollere
filnavn = input('Indtast et eksisterende filnavn: n')
# Åbn filen for første gang ved hjælp af funktionen open ()
fileHandler = åben(filnavn,'r')
# Prøv at åbne filen samme fil igen
prøve:
med åbent('filnavn','r') somfil:
# Udskriv succesbeskeden
Print('Filen er åbnet til læsning.')
# Hæv fejl, hvis filen åbnes før
undtagen IOError:
Print('Filen er allerede åbnet.')

Produktion:

Følgende output vises efter udførelse af ovenstående script. Her, clients.txt findes på den aktuelle placering, og fejlmeddelelsen, Filen er allerede åbnet, har trykt for IOfejl undtagelse.





Eksempel-2: Kontroller, at filen er lukket eller ej ved hjælp af den lukkede egenskab.

Værdien af lukket egenskab vil være sand, hvis en fil lukkes. Opret en python -fil med følgende script for at kontrollere, at en fil er lukket eller ej, der findes på den aktuelle placering. Det tidligere eksempelskript genererer en fejl, hvis filnavnet fra brugeren ikke findes på den aktuelle placering. Dette problem er løst i dette eksempel. Det du modul bruges her til at kontrollere eksistensen af ​​det filnavn, der vil blive taget fra brugeren. Funktionen check_closed () har defineret for at kontrollere, at filen er lukket eller ikke, der vil blive kaldt, hvis filen findes.



# Importer os -modul for at kontrollere eksistensen af ​​filen
importere
# Drfine funktion tjek filen er lukket eller ej
def check_closed():
hvisfileHandler.closed == Falsk:
# Udskriv succesbeskeden
Print('Filen er åbnet til læsning.')
andet:
# Udskriv fejlmeddelelsen
Print('Filen er lukket.')

# Tag filnavnet for at kontrollere
filnavn = input('Indtast et eksisterende filnavn: n')
# Kontroller, at filen findes eller ej
hvisos.path.exists(filnavn):
# Åbn filen til læsning
fileHandler = åben(filnavn,'r')
# Ring til funktionen
check_closed()
andet:
# Udskriv besked, hvis filen ikke findes
Print('Filen eksisterer ikke.')

Produktion:

Følgende output vises efter udførelse af ovenstående script. Her, clients.txt findes på den aktuelle placering, og succesbeskeden, Filen er åbnet til læsning, har udskrevet, fordi værdien af ​​den lukkede ejendom returnerede Falsk .

Eksempel-3: Kontroller, at filen er åbnet eller ej ved hjælp af OSError

Det OSFejl genereres, når funktionen rename () kaldes mere end én gang for en fil, der allerede er åbnet. Opret en python -fil med følgende script for at kontrollere, om en fil åbnes eller lukkes ved hjælp af OSFejl . OS -modulet er blevet brugt i scriptet til at kontrollere filens eksistens og omdøbe filen. Når omdøb () funktion kaldes for anden gang, genereres OSError, og den brugerdefinerede fejlmeddelelse udskrives.

# Importer os -modul for at kontrollere eksistensen af ​​filen
importere
# Indstil det eksisterende filnavn
filnavn ='clients.txt'
# Indstil det nye filnavn
nyt navn ='kunder.txt'
# Kontroller, at filen findes eller ej
hvisos.path.exists(filnavn):
prøve:
# Ring til omdøbningsfunktionen for første gang
os.rename(filnavn, nyt navn)
# Ring til omdøbningsfunktionen for anden gang
os.rename(filnavn, nyt navn)
# Hæv fejl, hvis filen er åbnet
undtagen OSError:
Print('Filen er stadig åbnet.')

andet:
# Udskriv besked, hvis filen ikke findes
Print('Filen eksisterer ikke.')

Produktion:

Følgende output vises efter udførelse af ovenstående script. Her, clients.txt findes på den aktuelle placering, og fejlmeddelelsen, Filen er stadig åbnet, har trykt, fordi OSFejl undtagelse har genereret, når den anden omdøb () funktion er udført.

Konklusion:

Når vi skal arbejde med den samme fil flere gange i et script, er det vigtigt at vide, om filen åbnes eller lukkes. Det er bedre at ringe til funktionen close () for at lukke filen, efter at filoperationen er afsluttet. Fejlen opstår, når en fil åbnes for anden gang i det samme script uden at lukke den. Forskellige løsninger på dette problem er blevet vist i denne vejledning ved hjælp af enkle eksempler til at hjælpe python -brugerne.