#python
#python
Вопрос:
Я пытаюсь прочитать текстовый файл, который я включаю в свое приложение pyqt.
Проблема, с которой я сталкиваюсь, заключается в том, что os.path.dirname(__file__)
возвращает каталог, в котором находится модуль, в котором находится файл данных, а не каталог, в котором находится main() . В этом случае подкаталог каталога приложения, а не каталог приложения.
Есть ли способ всегда возвращать каталог, из которого main()
вызывается?
Это или я могу получить каталог для этого текстового файла в main() и каким-то образом передать его в Mainform() ?
Причина всего этого в том, что я хочу поместить .txt в тот же каталог, что и main.py поэтому, когда я развертываю свое замороженное приложение, текстовый файл можно найти. (в OSX и WIN)
Спасибо
Комментарии:
1. посмотрите на
os.getcwd()
, а неos.path.dirname(__file__)
2. это фактически возвращает каталог над моим каталогом проекта.
3. неважно, я понял, что я делал неправильно.
Ответ №1:
Подобная настройка может сработать для вас:
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__'])