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

时间:2019-06-29 08:08:51

标签: python python-3.x filesystems

我有这个结构:

│
├ 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。有没有一种方法可以从other.py开始main.py,而不是编辑other.py

  

注意
  用户必须能够正确手动启动other.py

2 个答案:

答案 0 :(得分:1)

为此,您可以使用import关键字。您要做的就是在 dir 目录下创建__init__.py脚本,该脚本会将目录定义为库。然后,您可以在主脚本中使用导入其他文件。

建议使用以下代码段修改other.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" )

答案 1 :(得分:0)

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