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

如何从其他目录执行python文件?,python,python-3.x,filesystems,Python,Python 3.x,Filesystems,我有这样的结构: │ ├ main.py ├ dir | ├─ data.txt | └─ other.py 来自other.py的内容: 打印打开'data.txt','utf-8'。读取 我运行main.py。它必须启动dir/other.py。 但是works的other.py需要data.txt。有没有办法从main.py启动other.py,而不是编辑other.py 注 用户必须能够在没有任何错误的情况下手动启动other.py 为此,可以使用导入关键字。您所要做的就是在dir

我有这样的结构:

│
├ main.py
├ dir
|  ├─ data.txt
|  └─ other.py
来自other.py的内容:

打印打开'data.txt','utf-8'。读取 我运行main.py。它必须启动dir/other.py。 但是works的other.py需要data.txt。有没有办法从main.py启动other.py,而不是编辑other.py

注 用户必须能够在没有任何错误的情况下手动启动other.py


为此,可以使用导入关键字。您所要做的就是在dir目录下创建一个_uinit__;.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" )


您可以在主文件中导入other,如从dir.other import*

other.py是作为模块导入还是作为单独的进程运行?这并不重要。Egh。。。如果没有这样的文件或目录,我会有一个错误:“data.txt”要使用main.py目录中存在的data.txt,您应该使用“dir/data.txt”,因为它位于dir目录中,与main.py不在同一目录中。我起初认为这是错误的。但用户有时可以手动启动other.py。