如何从其他目录执行 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 *
我有这个结构:
│
├ 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 *