Python模块使用模块目录中的数据

时间:2014-06-18 07:48:16

标签: python module

我在自己的python库目录中构建了一个Python模块,以便在多个项目中共享。但是,此模块使用模块目录中文件夹中的数据文件来构造一个国家/地区数据及其属性。当在项目中运行此模块的时候,数据文件不再是本地的,因为模块是在参考当前工作目录的情况下运行的。

在python模块中引用数据的最佳方法是什么,它可以跨项目使用,数据随模块一起出现,从而模块对象构造?

示例:

import Classification as cs
codes = cs.Countries()

__init__(self)为类Country运行时,我希望它引用模块目录中的数据而不是当前工作目录

1 个答案:

答案 0 :(得分:0)

根据我的理解,无论程序运行在哪里,您都希望找到可执行文件的目录名。

如果我的理解正好在下面就是解决方案

import inspect
import os
import sys

def get_current_directory():
    if getattr(sys, 'frozen', False):
        application_path = os.path.dirname(sys.executable)
    elif __file__:
        application_path = os.path.dirname((inspect.getfile(inspect.currentframe())))
    return application_path

print get_current_directory()