Du tror import og open() leter på samme sted

Handler om: Filsti og arbeidsmappe, Bibliotek og import

Du tror import hjelpefil og open("data.csv") finner filer etter samme regel. Men import leter i mappa der SKRIPTET ligger (og i pakkene i miljøet), mens open() med relativ sti leter i ARBEIDSMAPPA — der terminalen står. Kjører du python prosjekt/spill.py fra mappa over, virker importen av hjelpefila, men open() gir FileNotFoundError.

Eksempel

Fra C:\Users\ada: python it2-prosjekt\spill.py → from rutenett import Rutenett virker, open("elever.csv") gir FileNotFoundError.

Slik tenker du riktig om det

Spør to spørsmål: hvor ligger skriptet (det avgjør import), og hvor står terminalen (det avgjør open)? cd inn i prosjektet, så er svaret det samme.

Slik ser det ut i kode

Slik gikk det galt

# står i mappa over prosjektet
# python it2-prosjekt/spill.py
from rutenett import Rutenett  # virker
fil = open("elever.csv")  # FileNotFoundError

Slik fikser du det

# cd it2-prosjekt, så python spill.py
from rutenett import Rutenett
fil = open("elever.csv")

Les om dette i boka

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