Du tror relativ sti er fra fila, ikke fra der du kjører

Handler om: Filsti og arbeidsmappe

Du tror open("elever.csv") leter i mappa der .py-fila ligger. Men en relativ sti tolkes fra ARBEIDSMAPPA — mappa terminalen står i når du kjører koden. Står du et annet sted, finner ikke koden fila, og du får FileNotFoundError, selv om fila «ligger ved siden av» koden.

Eksempel

elever.csv og analyse.py ligger i samme mappe, men eleven står i hjemmemappa og kjører python prosjekt/analyse.py -> FileNotFoundError.

Slik tenker du riktig om det

Relativ sti er «fra der jeg STÅR», ikke «fra der fila ligger». Sjekk hvor du står (cd / pwd) før du kjører, og cd inn i prosjektmappa først.

Slik ser det ut i kode

Slik gikk det galt

# terminalen staar i hjemmemappa, ikke i prosjektet:
python it2-prosjekt/analyse.py   # open("elever.csv") -> FileNotFoundError

Slik fikser du det

cd it2-prosjekt        # gaa inn i mappa der filene ligger
python analyse.py      # naa er arbeidsmappa riktig, og elever.csv finnes

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala