Python:从另一个目录导入文件

标签 python import module

我在一组具有以下结构的目录中工作:

Master/
      Subfolder_1/file_1_1.py
                  file_1_2.txt
      Subfolder_2/file_2_1.py

我在 file_2_1 中导入 file_1_1,如下所示:

import sys
sys.path.append('../file_1_1')

file_1_1 正在读取同一目录中的 file_1_2.txt。但是,当我调用从 file_2_1.py 读取 file_1_2.txt 的函数时,它说没有这样的文件和目录,它给我 file_1_2.txt 的路径如下:

Master/Subfolder_2/file_1_2.txt

这是一条错误的道路。在这种情况下,python 似乎正在使用工作目录作为引用。鉴于我不想包含我读取的每个文件的绝对路径,我该如何解决此错误。

最佳答案

不要乱用 sys.path,也不要认为导入是针对文件和目录的。最终一切都必须存在于某个文件中,但模块层次结构比“用斜线替换点并在末尾粘贴 .py”更微妙。

您几乎肯定想进入 Master 并运行 python -m Subfolder_1.file_1_1。您可以使用 pkg_resources获取文本文件:

pkg_resources.resource_string('Subfolder_1', 'file_1_1.txt')

关于Python:从另一个目录导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232421/

相关文章:

python - 如何在 Python 中同时运行多个 tkinter 窗口?

python - 在 Python 中导入库类

windows - 永久添加 PowerShell 模块? (导入模块)

java - 我们从哪里得到 "import"的东西?

flash - AS3导入FLA文件

module - 可以在 Raku 中导出子集吗?

python - 在 Python 包中需要 BeautifulSoup - setup.py 中需要什么?

python - `conda uninstall` 和 `pip uninstall` 是否也删除了依赖项但仅删除了其他包未使用的依赖项?

php - 为什么 Web 服务中的尾部斜杠如此重要?

python - 每当我的 MySQL 数据库发生变化(插入)时,是否可以向我的 python 应用程序发送实时通知?