繁体   English   中英

使用 os 从另一个 Python 脚本运行 .py 文件

[英]running a .py file from another Python script using os

有人可以告诉我如何使用os从我的 python 脚本运行不同的 .py 文件吗? 下面的代码有效,但只是因为我指定了完整的文件路径。

如何修改代码以合并与主脚本app.py plots.py 我目前使用 Windows,但希望它可以在任何操作系统上运行。 谢谢

import os

os.system('py C:/Users/benb/Desktop/flaskEconServer/plots.py')

您可以使用subprocess.run()函数将任意 Python 脚本作为单独的进程执行,如下所示:

import os
import subprocess
import sys

#py_filepath = 'C:/Users/benb/Desktop/flaskEconServer/plots.py'
py_filepath = 'plots_test.py'

args = '"%s" "%s" "%s"' % (sys.executable,                  # command
                           py_filepath,                     # argv[0]
                           os.path.basename(py_filepath))   # argv[1]

proc = subprocess.run(args)
print('returncode:', proc.returncode)

如果您想在进程运行时与其进行通信,也可以这样做,此外还有其他subprocess进程功能,包括支持执行此类操作的较低级别但非常通用的subprocess.Popen类。

Python 内置了对执行其他脚本的支持,而不需要os模块。

尝试:

from . import plots

如果要在独立的 python 进程中执行它,请查看multiprocessingsubprocess进程模块。

您可以通过在app.py中使用以下调用来获取app.py文件的目录

dir_path = os.path.dirname(os.path.realpath(__file__))

然后加入你想要的文件名

file_path = os.path.join(dir_path,'plot.py')

最后你的系统调用

os.system(f'py {file_path}') # if you're on 3.6 and above.
os.system('py %s' % file_path) # 3.5 and below

正如其他人所说,子进程和多线程可能会更好,但对于您的具体问题,这就是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM