Чтение из файла данных

#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__'])