有人可以给我一个提示,告诉我如何使用os
运行与python脚本不同的.py文件吗?下面的代码有效,但这仅是因为我指定了完整的文件路径。
如何修改代码以合并与主脚本plots.py
来自同一目录的运行app.py
?我目前正在使用Windows,但希望它可以在任何操作系统上运行。谢谢
import os
os.system('py C:/Users/benb/Desktop/flaskEconServer/plots.py')
答案 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进程中执行它,请查看multiprocessing
或subprocess
模块。
答案 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
正如其他人所说,子流程和多线程可能更好,但是对于您来说,特定的问题是您想要的。