首页 > 解决方案 > 如何在 python 的模块中加载文本文件?

问题描述

我有一个包含多个模块的 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

标签: pythonmodule

解决方案


利用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,即像python path/to/script.py


推荐阅读