我在自己的python库目录中构建了一个Python模块,以便在多个项目中共享。但是,此模块使用模块目录中文件夹中的数据文件来构造一个国家/地区数据及其属性。当在项目中运行此模块的时候,数据文件不再是本地的,因为模块是在参考当前工作目录的情况下运行的。
在python模块中引用数据的最佳方法是什么,它可以跨项目使用,数据随模块一起出现,从而模块对象构造?
示例:
import Classification as cs
codes = cs.Countries()
当__init__(self)
为类Country运行时,我希望它引用模块目录中的数据而不是当前工作目录
答案 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()