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

时间:2018-06-13 08:51:53

标签: python file-io import

我有以下文件夹结构。

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

App导入测试,它运行成功,但是在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 :(得分:1)

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