Как бы я загрузить текстовые файлы в модуле в Python? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть проект Python, который содержит несколько модулей, и один модуль содержит файл .txt с длинным списком ключевых слов.

Как получить доступ к файлу .txt и загрузить его содержимое (список строк) в переменную в сценарии .py из другого места (не из той же директории) ??

--- Library
         - Module_Alice
              - etc..
         - Module_Bob
              - assets
                   - audio
                   - video
                   - texts
                        - all_keywords.txt
              - unittests
                   - func 
                        - test_text_process.py

Мне нужно загрузить все ключевые слова в all_keywords.txt в переменную в test_text_process.py

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Вы можете использовать что-то вроде этого:

with open("../../assets/texts/all_keywords.txt") as f:
    keywords = f.readlines()

Теперь, когда переменная списка keywords содержит все ключевые слова в файле.

0 голосов
/ 18 октября 2018

Это будет считывать файл в список строк из этого места.

with open('../assets/text/all_keywords.txt') as infile:
    list_of_strings = infile.readlines()
0 голосов
/ 18 октября 2018

Используйте open

Вы можете использовать абсолютный путь:

with open("/root/path/to/your/file.txt",'r') as fin:
    # Your reading logic

Или вы можете использовать относительный путь:

with open("../../your/file.txt",'r') as fin:
    # read it.

В случае, если выпереместите папку и запустите ее в другом месте, но не на уровне файла python, вы можете сделать относительный импорт следующим образом:

import os.path as path
text_file_path = path.dirname(path.abspath(__file__)) + '/assets/texts/all_keywords.txt'

Таким образом, вы можете запустить файл python где угоднои все еще сможете использовать текстовый файл.Если вы просто делаете родственника, вы не сможете запустить свой питон вне его директории, например, python path/to/script.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...