Hvordan kontrollere at en fil er åpnet eller lukket i Python

How Check File Is Opened



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 å lage, åpne, lese, skrive og lukke filen. To typer filer kan opprettes for å lagre data. Dette er tekstfiler og binære filer. Enhver fil må åpnes før du leser eller skriver. De åpen() funksjonen brukes i Python for å åpne en fil. Bruker åpen() funksjon er en måte å kontrollere at en bestemt fil er åpnet eller lukket. Hvis åpen() funksjon åpner en tidligere åpnet fil, deretter en IO -feil vil bli generert. En annen måte å kontrollere at en fil åpnes eller lukkes, er å kontrollere verdiene til lukket egenskapen til filbehandlingsobjektet. Ved hjelp av gi nytt navn () funksjon er en annen måte å kontrollere at filen er åpnet eller lukket. Ulike måter å kontrollere at en fil åpnes eller lukkes i Python har blitt vist i denne opplæringen.

Lag en fil for kontroll:

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 heter clients.txt er opprettet med følgende innhold for bruk senere i neste del av opplæringen.







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



Eksempel 1: Kontroller at filen er åpnet eller ikke ved å bruke IOError

IO -feil genereres når funksjonen open () kalles for å åpne en fil som har blitt åpnet før. Opprett en python -fil med følgende skript for å kontrollere at en fil er åpnet eller ikke ved å bruke prøve-unntatt blokkere. Her vil ethvert eksisterende filnavn bli tatt som input og åpnet for lesing. Deretter kalles open () -funksjonen igjen for å åpne den samme filen som vil åpne en IOError og skrive ut feilmeldingen.



# Ta filnavnet for å sjekke
filnavn = input('Skriv inn et eksisterende filnavn: n')
# Åpne filen for første gang med funksjonen open ()
fileHandler = åpen(filnavn,'r')
# Prøv å åpne filen samme fil igjen
prøve:
med åpen('filnavn','r') somfil:
# Skriv ut suksessmeldingen
skrive ut('Filen har åpnet for lesing.')
# Hev feil hvis filen åpnes før
unntatt IOError:
skrive ut('Filen har allerede åpnet.')

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er utført. Her, clients.txt finnes på gjeldende plassering, og feilmeldingen, Filen er allerede åpnet, har skrevet ut for IO -feil unntak.





Eksempel 2: Kontroller at filen er lukket eller ikke ved å bruke den lukkede egenskapen.

Verdien av lukket egenskapen vil være sann hvis en fil lukkes. Opprett en python -fil med følgende skript for å kontrollere at en fil er lukket eller ikke finnes på gjeldende plassering. Det forrige eksempelskriptet vil generere en feil hvis filnavnet fra brukeren ikke eksisterer på gjeldende plassering. Dette problemet er løst i dette eksemplet. De du modul brukes her for å kontrollere eksistensen av filnavnet som vil bli tatt fra brukeren. Check_closed () -funksjonen har definert for å kontrollere at filen er lukket eller ikke som vil bli kalt hvis filen eksisterer.



# Importer OS -modul for å kontrollere eksistensen av filen
import
# Drfine -funksjon, sjekk at filen er lukket eller ikke
def check_closed():
hvisfileHandler.closed == Falske:
# Skriv ut suksessmeldingen
skrive ut('Filen har åpnet for lesing.')
ellers:
# Skriv ut feilmeldingen
skrive ut('Filen er lukket.')

# Ta filnavnet for å sjekke
filnavn = input('Skriv inn et eksisterende filnavn: n')
# Kontroller at filen finnes eller ikke
hvisos.path.exists(filnavn):
# Åpne filen for lesing
fileHandler = åpen(filnavn,'r')
# Ring funksjonen
check_closed()
ellers:
# Skriv ut melding hvis filen ikke finnes
skrive ut('Filen eksisterer ikke.')

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er utført. Her, clients.txt finnes på den nåværende plasseringen, og suksessmeldingen, Filen har åpnet for lesing, har skrevet ut fordi verdien av den lukkede eiendommen returnerte Falsk .

Eksempel 3: Kontroller at filen er åpnet eller ikke ved å bruke OSError

De OSError genereres når funksjonen rename () kalles mer enn én gang for en fil som allerede er åpnet. Opprett en python -fil med følgende skript for å kontrollere at en fil åpnes eller lukkes ved hjelp av OSError . OS -modulen har blitt brukt i skriptet for å kontrollere filens eksistens og gi nytt navn til filen. Når gi nytt navn () funksjon blir kalt for andre gang, blir OSError generert og den egendefinerte feilmeldingen skrives ut.

# Importer OS -modul for å kontrollere eksistensen av filen
import
# Angi det eksisterende filnavnet
filnavn ='clients.txt'
# Angi det nye filnavnet
nytt navn ='customers.txt'
# Kontroller at filen finnes eller ikke
hvisos.path.exists(filnavn):
prøve:
# Ring omdøpsfunksjonen for første gang
os.rename(filnavn, nytt navn)
# Ring omdøpsfunksjonen for andre gang
os.rename(filnavn, nytt navn)
# Hev feil hvis filen har åpnet
unntatt OSError:
skrive ut('Filen er fortsatt åpnet.')

ellers:
# Skriv ut melding hvis filen ikke finnes
skrive ut('Filen eksisterer ikke.')

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er utført. Her, clients.txt finnes på gjeldende plassering, og feilmeldingen, Filen er fortsatt åpnet, har skrevet ut fordi OSError unntak har generert når den andre gi nytt navn () 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 er åpnet eller lukket. Det er bedre å ringe close () -funksjonen for å lukke filen etter at filoperasjonen er fullført. Feilen oppstår når en fil åpnes for andre gang i det samme skriptet uten å lukke den. Ulike løsninger på dette problemet har blitt vist i denne opplæringen ved å bruke enkle eksempler for å hjelpe python -brukerne.