我正在尝试从我的pyqt应用程序中包含的txt文件中读取。
我遇到的问题是os.path.dirname(__file__)
正在返回查找数据文件的模块所在的目录,而不是main()所在的目录。在这种情况下,应用程序目录的子目录而不是应用程序目录。
有没有办法始终返回调用main()
的目录?
那个或者我可以在main()中获取此文本文件的目录并以某种方式将其传递给Mainform()吗?
所有这一切的原因是因为我想将.txt放在与main.py相同的目录中,因此当我部署冻结的应用程序时,可以找到文本文件。 (在OSX和WIN上)
由于
答案 0 :(得分:0)
这样的设置可能适合您:
<强> main.py 强>
import other
def main():
print other.get_data_files_dir()
main()
<强> other.py 强>
import os
import sys
def get_data_files_dir():
namespace = sys._getframe(1).f_globals # caller's globals
return os.path.dirname(namespace['__file__'])