执行系统命令(win,linux等)并返回结果给python的原理:subprocess打开一个系统命令终端,执行输入的命令,并通过操作系统(也就是连接命令终端和python的管道,因命令终端输出的数据(在系统某个内存位置)和python的数据(也在系统某个内存位置,但是两者的内存位置都能访问的就是操作系统)是不不互通的)返回给python。
subprocess的三种执行方法:
1>subprocess.run(*popenargs, input=None, timeout=None, check=False, **kwargs)(貌似python3.4没有,装了python3.6有这个方法)
2>subprocess.call(*popenargs, timeout=None, **kwargs)
3>subprocess.Popen() # 上面两种是基于这个再封装的
run方法实例
subprocess.run('ping 192.168.1.1')
a = subprocess.run('ping 192.168.1.1', stderr=subprocess.PIPE, stdout=subprocess.PIPE, check=False)
a.stdout # 输出命令的执行结果
a.stderr # 输出错误信息