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

时间:2019-05-28 19:54:47

标签: python

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

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

import os

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

3 个答案:

答案 0 :(得分:1)

您可以使用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)

如果您希望在运行过程中与之通信,也可以这样做,请plut还有其他subprocess函数,包括支持常规功能的较低级别的subprocess.Popen类这类事情。

答案 1 :(得分:0)

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

尝试:

from . import plots

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

答案 2 :(得分:0)

您可以在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

正如其他人所说,子流程和多线程可能更好,但是对于您来说,特定的问题是您想要的。