Python выдает ошибку для пути к файлу внутри папки Project, где это не предполагается, и кажется, что это сбой Python

Python выдает некоторую непоследовательную ошибку для ссылки на файл внутри папки проекта на основе «Рабочего каталога» в конфигурации скрипта, что очень странно.

Моя структура проекта выглядит следующим образом

config_utils.py

      f = ''

def config_init():

    global f

    txt_dir = '../files/sample.txt'

    f = open(txt_dir, "r")

    f = f.read()

мой код.py

      import config_ru.config_utils as cu

cu.config_init()

print(cu.f)

При выполнении mycode.py он выдает следующую ошибку относительно «sample.txt» в пакете «files».

но если я изменю рабочий каталог «my_code.py» в конфигурации скрипта с «level2» на «level1», mycode.py будет успешно выполнен

Это очень странно, потому что в обоих случаях расположение «sample.txt» остается неизменным, и как ошибка, так и принудительное изменение рабочего каталога кажутся неприемлемыми. Просьба уточнить

1 ответ

Обходной путь заключается в том, чтобы получить путь к модулю, в котором вы находитесь, и применить к нему относительный путь к файлу ресурсов:

      from pathlib import Path

f = ''

def config_init():
    global f

    p = Path(__file__).parent.absolute()
    txt_dir = (p / '../files/sample.txt').resolve()

    f = open(txt_dir, "r")
    f = f.read()
Другие вопросы по тегам