python运行shell command

想要实现简易的脚本控制,又想使用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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值