想要实现简易的脚本控制,又想使用python里面的argument包,所以就在python里面调用python函数。
简单传统的办法就是
import os
os.system('python3 main.py')
还有一个更安全,接口更多的包subprocess ,笔者就没有研究了 。
详细文档为:https://docs.python.org/3.6/library/subprocess.html
各种运行方式对比详见:https://stackoverflow.com/questions/89228/calling-an-external-command-in-python
简答的说,使用subprocess.run
运行程序,其中所有参数以list形式传入,设置stdout=subprocess.PIPE追踪程序输出,记录在返回的CompletedProcess的stdout attribute中。
样例代码如下:
>>> subprocess.run(["ls", "-l"]) # doesn't capture output
CompletedProcess(args=['ls', '-l'], returncode=0)
>>> subprocess.run("exit 1", shell=True, check=True)
Traceback (most recent call last):
...
subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1
>>> subprocess.run(["ls", "-l", "/dev/null"], stdout=subprocess.PIPE)
CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0,
stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\n')