Python ingen slik fil eller katalog

Python ingen slik fil eller katalog
Når du jobber med Python -filer, må filene og katalogene du spesifiserer, eksistere på filsystemet. For eksempel, hvis du prøver å åpne en fil som ikke eksisterer, vil Python kaste en FilenotFoundError: Ingen slik fil eller katalog.

Denne opplæringen vil diskutere de forskjellige scenariene der denne typen feil oppstår, mulige årsaker og løsninger for å fikse dem.”

Python FilenotFounderError: [Errno 2] Ingen slik filkatalog

Den beste måten å undersøke denne typen feil er å se på den første blokken av feilmeldingen.

Enhver feil som starter med filenotfounder -blokken betyr at Python ikke finner filen som er spesifisert.

Dette tvinger Python til å avslutte da den ikke kan behandle den foregående koden uten å få tilgang til den spesifiserte filen.

Det er et innebygd unntak som heves av OS-modulen når en forespurt fil eller katalog ikke eksisterer. Du kan også øke denne feilen manuelt, men det er en artikkel for en annen dag.

Merk: Denne feilen er ikke reist i operasjoner som å lage nye filer eller skrive innhold til en fil som ikke eksisterer,

La oss ta en eksempelkode som vil kaste FilenotFoundError.

Fra OS Import Listdir
for f i listdir ('/non_existing_dir'):
trykk (f)

I eksemplet over starter vi med å importere ListDIR -funksjonen fra OS -modulen. Deretter skriver vi ut hver fil i den spesifiserte katalogen til listDIR () -funksjonen.

Siden målkatalogen ikke eksisterer, vil Python returnere en feil som:

#Windows

FilenotFoundError: [WINERROR 3] Systemet kan ikke finne banen som er spesifisert: '/non_existing_dir'

# Unix
Filenotfoundererror: [errno 2] Ingen slik fil eller katalog: '/non_existing_dir'

Som du ser, klarer ikke koden å utføre da Python ikke finner den angitte katalogen.

Mulige årsaker

Det er tre viktige årsaker til FilenotFoundError i Python.

  1. Katalogen eller filnavnet er feilstavet.
  2. Feil filsti eller katalogsti
  3. Bruk av relative stier.

Løsninger

Løsningene er enkle.

  1. Forsikre deg om at hele filnavnet og katalognavnet er stavet riktig, inkludert utvidelsen.
  2. For det andre, sørg alltid for at banen du spesifiserer eksisterer og er tilgjengelig.
  3. Python vil ikke løse relative stier. I stedet for å bruke Tilde (~) for eksempel for å spesifisere hjemmekatalogen, bruker du den absolutte banen som /hjem /brukernavn.

I vårt eksempel over kan vi løse FilenotFoundError ved å opprette målkatalogen som:

$ mkdir /non_existing_dir

Vi kan deretter kjøre koden på nytt som vist:

$ sudo python3 -fil.py

Programmet skal returnere filene og katalogen i den katalogen som:

Faillog
Apt
Støvelhempe.Logg
tidsskrift
fontconfig.Logg
WTMP
Lastlog
PostgreSql
Sysstat
Uovervåket-oppgraderinger
btmp
dpkg.Logg
alternativer.Logg

Konklusjon

I denne artikkelen diskuterte vi hvordan du løser Python ingen slik fil eller katalogfeil og hvordan du løser den.

Glad koding!!