从另一个文件夹导入脚本,而不知道确切路径

Import script from another folder without knowing the precise path

提问人:FireStorm 提问时间:11/16/2023 最后编辑:FireStorm 更新时间:11/16/2023 访问量:36

问:

我有两个文件 F1.py 和 F2.py,结构如下:

                      |-----F2.py
                      |
             |-----Folder2
             |
[...]-----Folder1
             |
             |-----F1.py

F1.py 只是像应用程序一样执行 F2.py,但 F2.py 需要 F1.py 中的变量才能运行,那么我应该怎么做呢?

F2 是它自己的独立应用程序,例如计时器,而 F1 是一个启动器。 F1 会自动检查 Folder2 中的所有 .py 文件,并为每个文件创建按钮,以便您可以运行它们。

我试过这样做,但它只是运行 F1。此外,由于我需要的数据是在应用程序运行期间创建的,并且依赖于用户输入,因此我需要 F1.py 运行时获取数据。from Folder1.F1 import var1, var2

另外,我不知道 Folder1 之前有什么,所以就是这样。

python-3.x 变量 python-import

评论

0赞 tripleee 11/16/2023
这太模糊了,无法回答,但听起来很像循环依赖。如果包含,则不能 .通常的解决方案是重构,以便在调用它时提供它需要访问的值。或者也许将共享代码移动到 以便两者和可以F1import F2F2import F1F2F1F3F1F2import F3
0赞 FireStorm 11/16/2023
F1 不这样做,而是 os.startfile('F2')import F2
0赞 Alex 11/16/2023
也许将 vars 作为 import 的参数传递?
0赞 tripleee 11/16/2023
将另一个 Python 脚本作为单独的进程运行是一个与您似乎要问的问题截然不同的问题。请查看帮助中心,特别是如何提问,以及提供最小可重现示例的指南。

答:

0赞 Jan Schweizer 11/16/2023 #1

我像这样重新创建了您的文件夹结构:

folder1/
|-- py1.py
|-- folder2/
|   |-- py2.py

在 py1.py 中,我有以下代码:

text = 'Hello World!'

在 py2.py 中,我有以下代码:

import sys
import os

# Get the path of the parent directory (project_folder)
parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
sys.path.append(parent_dir)

from py1 import text

print(text)

这是我执行 py2.py 时的输出:

Hello World!

我希望这对你有用!