如何在python模块中加载文本文件?

时间:2018-10-18 15:49:40

标签: python module

我有一个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 :(得分:1)

使用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

)运行python

答案 1 :(得分:1)

您可以使用以下内容:

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

现在keywords列表变量包含文件上的所有关键字。

答案 2 :(得分:1)

这会将文件从该位置读取到字符串列表中。

with open('../assets/text/all_keywords.txt') as infile:
    list_of_strings = infile.readlines()