如何从其他目录执行 python 文件?

How to execute python file from other directory?

我有这个结构:

│
├ main.py
├ dir
|  ├─ data.txt
|  └─ other.py

来自 other.py 的内容:

print(open('data.txt', 'utf-8').read())

我运行main.py。它必须从 dir/other.py.
开始 但是 other.py 工作需要 data.txt。有没有办法从 main.py 开始 other.py,而不是编辑 other.py

Note
User must be able to start other.py manualy without any errors

为此,您可以使用 import 关键字。您所要做的就是在 dir 目录下创建一个 __init__.py 脚本,它将目录定义为一个库。然后你可以在主脚本中使用 import others 。

建议使用以下代码段修改 others.py 脚本

if __name__ == '__main__':
    // do stuff

否则每次导入都会执行库

更新

要简单得多。您只需使用 os.chdir("./dir") 调用更改目录。之后你可以 运行 一个简单的导入,脚本就会被执行。

./dir/other.py:
print("Module starts")
print(open('data', 'r').read())
print("Module ends")

./main.py
print("Main start")
import os
os.chdir("./dir")
from others import other
print("Main end" )

您可以在主文件中导入其他内容,例如 from dir.other import *