Python 无法打开导入包上的文件



我有以下文件夹结构。

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

应用程序导入测试,它运行成功,但是 test.py 我想打开一个名为"虚拟.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

最好的方法是定义一些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')

最新更新