python - 如何在 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
解决方案
利用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
推荐阅读
- javascript - 在 React 应用程序中集成 fb 分享功能
- c# - 在 C# 中异步调用接受字符串并返回 int 的方法
- python - 即使彼此缺少某些行,如何连接两个表
- oracle - 一个使用 Oracle Client 12 的应用程序能否与 Oracle Server 19(数据库)进行通信(例如,运行查询)?它们兼容吗?
- android - 无法解决:firebase-storage-19.2.0
- javascript - Cloud Firestore 更新文档中的多个字段
- performance - Hive JDBC 连接没有通过 JMeter 发生
- c - 使用 for 循环制作 Loading... 动画
- elasticsearch - 是否可以通过过滤器在 Elastic Search 中添加数据?
- javascript - 如何组合两个数组中的值?