Python не может открыть файл в импортированном пакете - PullRequest
0 голосов
/ 13 июня 2018

У меня следующая структура папок.

application/app/src/app.py
application/app/data/test.py

Приложение импортирует тест, и оно успешно работает, однако в test.py я хочу открыть файл с именем "dummy.txt"

application/app/data/dummy.txt

Когда я запускаю app.py, я получаю следующую ошибку:

No such file or directory: 'dummy.txt'

Я предполагаю это, потому что мой sys.path находится в папке src, однако, когда я попробовал следующее:

TARGET_DIR_NAME = 'data'
sys.path.append('../'+TARGET_DIR_NAME)
print(sys.path[0])
print(dirname(sys.path[0]))
sys.path[0] = dirname(sys.path[0])+'/'+TARGET_DIR_NAME

меняет его прямо на папку данных, но все равно не открывается.Любая помощь приветствуется!

Я использую Python 3.4.3

1 Ответ

0 голосов
/ 13 июня 2018

Лучшим способом было бы определить какой-нибудь модуль utility, который дает вам путь на основе вашего базового пути следующим образом:

PathUtil.py может быть одним модулем в вашей папке src.И оттуда вы вычислите свои пути.

import os

base_path = os.path.abspath(os.path.dirname(__file__))

def get_data_path(self):
    data_dir = os.path.join(base_path, "data" + os.sep)
    return data_dir

Теперь в вашем файле вы можете импортировать следующее:

 import os
 from PathUtil import get_data_path

 dummy_file_path = os.path.join(get_data_path(), 'dummy.txt')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...