Hvordan sjekke en fil åpnes eller lukkes i Python

Hvordan sjekke en fil åpnes eller lukkes i Python
Filen brukes til å lagre data permanent. Å jobbe med en fil er en veldig vanlig oppgave for ethvert programmeringsspråk. Mange innebygde funksjoner finnes i Python for å opprette, åpne, lese, skrive og lukke filen. To typer filer kan opprettes for å lagre data. Dette er tekstfiler og binære filer. Enhver fil kreves for å åpne før du leser eller skriver. De åpen() Funksjon brukes i Python for å åpne en fil. Bruker åpen() Funksjon er en måte å sjekke at en bestemt fil åpnes eller lukkes. Hvis åpen() Funksjonen åpner en tidligere åpnet fil, deretter en IOERROR vil bli generert. En annen måte å sjekke at en fil åpnes eller lukkes er å sjekke verdiene til lukket Eiendom til filbehandlerobjektet. Ved hjelp av gi nytt navn til () Funksjon er en annen måte å sjekke at filen er åpnet eller lukket. Ulike måter å sjekke en hvilken som er åpnet eller stengt i Python har blitt vist i denne opplæringen.

Opprett en fil for å sjekke:

Du kan bruke hvilken som helst eksisterende fil eller opprette en ny fil for å teste eksempelkoden som vises i denne opplæringen. En ny tekstfil som heter klienter.tekst har blitt opprettet med følgende innhold som skal brukes senere i neste del av opplæringen.

ID -navn E -post
01 Jony Liver [email protected]
02 Manik Hossain [email protected]
03 neha akter [email protected]
04 Janatul Ferdous [email protected]
05 Helal uddin [email protected]

Eksempel-1: Kontroller at filen åpnes eller ikke ved å bruke IOERROR

IOERROR genererer når den åpne () -funksjonen kalles for å åpne en fil som har blitt åpnet før. Opprett en Python -fil med følgende skript for å sjekke en fil åpnes eller ikke ved å bruke prøve-bortsett fra blokkere. Her vil ethvert eksisterende filnavn bli tatt som innspill og åpnet for lesing. Deretter kalles Open () -funksjonen igjen for å åpne den samme filen som vil heve en Ioerror og skrive ut feilmeldingen.

# Ta filnavnet for å sjekke
filnavn = input ("Skriv inn et hvilket som helst eksisterende filnavn: \ n")
# Åpne filen for første gang ved hjelp av Open () -funksjonen
FileHandler = Open (Filname, "R")
# Prøv å åpne filen samme fil igjen
prøve:
med åpen ("filnavn", "r") som fil:
# Skriv ut suksessmeldingen
Print ("Fil har åpnet for lesing.")
# Hev feil hvis filen åpnes før
Bortsett fra Ioerror:
print ("filen har allerede åpnet.")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her, klienter.tekst eksisterer på det nåværende stedet, og feilmeldingen, "Filen har åpnet allerede," har skrevet ut for IOERROR unntak.

Eksempel-2: Sjekk filen er lukket eller ikke ved å bruke den lukkede egenskapen.

Verdien av lukket Eiendom vil være sant hvis noen fil er lukket. Opprett en Python -fil med følgende skript for å sjekke at en fil er lukket eller ikke som finnes på det nåværende stedet. Det forrige eksempelskriptet vil generere en feil hvis filnavnet hentet fra brukeren ikke eksisterer på det nåværende stedet. Dette problemet har løst i dette eksemplet. De OS Modul brukes her for å sjekke eksistensen av filnavnet som vil bli tatt fra brukeren. Check_closed () -funksjonen har definert for å sjekke at filen er lukket eller ikke som vil bli kalt hvis filen eksisterer.

# Importer OS -modul for å sjekke eksistensen av filen
Importer OS
# DRFINE -funksjon Kontroller Filen er lukket eller ikke
def check_closed ():
Hvis FileHandler.lukket == falsk:
# Skriv ut suksessmeldingen
Print ("Fil har åpnet for lesing.")
ellers:
# Skriv ut feilmeldingen
Print ("Filen er lukket.")
# Ta filnavnet for å sjekke
filnavn = input ("Skriv inn et hvilket som helst eksisterende filnavn: \ n")
# Kontroller at filen eksisterer eller ikke
Hvis OS.sti.eksisterer (filnavn):
# Åpne filen for lesing
FileHandler = Open (Filname, "R")
# Ring funksjonen
check_closed ()
ellers:
# Skriv ut melding hvis filen ikke eksisterer
Print ("Filen eksisterer ikke.")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her, klienter.tekst eksisterer på det nåværende stedet, og suksessmeldingen, "Filen har åpnet for lesing," har skrevet ut fordi verdien av den lukkede eiendommen returneres Falsk.

Eksempel-3: Sjekk filen åpnes eller ikke ved å bruke OsError

De Oserror Genererer når Rename () -funksjonen kalles mer enn en gang for en fil som allerede åpnes. Opprett en Python -fil med følgende skript for å sjekke en fil åpnes eller lukkes ved å bruke Oserror. OS -modulen har blitt brukt i skriptet for å sjekke filens eksistens og gi nytt navn til filen. Når gi nytt navn til () Funksjon kalles for andre gang, OsError vil bli generert, og den tilpassede feilmeldingen vil bli skrevet ut.

# Importer OS -modul for å sjekke eksistensen av filen
Importer OS
# Angi det eksisterende filnavnet
filnavn = 'klienter.tekst'
# Angi det nye filnavnet
newName = 'kunder.tekst'
# Kontroller at filen eksisterer eller ikke
Hvis OS.sti.eksisterer (filnavn):
prøve:
# Ring nyttavnfunksjonen for første gang
OS.gi nytt navn (filnavn, nynavn)
# Ring Rename -funksjonen for andre gang
OS.gi nytt navn (filnavn, nynavn)
# Hev feil hvis filen har åpnet
Bortsett fra Oserror:
trykk ("Fil åpnes fortsatt.")
ellers:
# Skriv ut melding hvis filen ikke eksisterer
Print ("Filen eksisterer ikke.")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her, klienter.tekst eksisterer på det nåværende stedet, og feilmeldingen, "Filen åpnes fortsatt," har skrevet ut fordi Oserror unntak har generert når det andre gi nytt navn til () Funksjonen er utført.

Konklusjon:

Når vi trenger å jobbe med den samme filen flere ganger i et skript, er det viktig å vite om filen åpnes eller lukkes. Det er bedre å ringe Close () -funksjonen for å lukke filen etter å ha fullført filoperasjonen. Feilen oppstår når en fil åpnes for andre gang i det samme skriptet uten å lukke den. Ulike løsninger på dette problemet er vist i denne opplæringen ved å bruke enkle eksempler for å hjelpe Python -brukerne.