Python之路35-subprocess模块和Python3中常用执行shell命令方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之路35-subprocess模块和Python3中常用执行shell命令方法相关的知识,希望对你有一定的参考价值。
import subprocess #执行命令,返回命令执行状态 , 0 or 非0 retcode = subprocess.call(["free","-m"]) #返回值可判断执行是否正确,命令执行结果直接返回到屏幕 #执行命令,如果命令结果为0,就正常返回,否则抛异常 result = subprocess.check_call(["ls","-l"]) #执行命令,并返回结果,注意是返回结果,不是打印,下例结果返回给res res = subprocess.check_output(["ls","-l"]) #若shell = true, 则shell 参数以字符串形式给出,否则,则以序列的形式给出 #python3执行shell命令的几种方式 #1.用os.system(cmd) 可以获取命令执行后的返回值,但是获取不了命令的输出内容 import os; return_code=os.system(‘ls -la‘); print(return_code); #2.用os.popen(cmd) 可以获取命令的输出内容,但是获取不了命令执行后的返回值 import os; import sys; output=os.popen(‘ls -l‘); out=output.readlines(); for i in out: print(i.strip()); #3.用subprocess import os; import sys; import subprocess; import codecs; #可以直接将输出写入到文件 output_file=codecs.open(‘abc.txt‘,‘w‘,‘utf-8‘); return_code=subprocess.call([‘ls‘,‘-l‘],stdout=output_file); output_file.close(); print(return_code); #也可以先将输出先保存为string变量, output=subprocess.check_output([‘ls‘,‘-l‘]); #如果命令执行的返回值不为0,则会抛出CalledProcessError的错误 print(output.decode(‘utf-8‘)); #再将string变量写入到文件 output_file=codecs.open(‘abc.txt‘,‘w‘,‘utf-8‘); output_file.write(output.decode(‘utf-8‘)); output_file.close();
本文出自 “八英里” 博客,请务必保留此出处http://5921271.blog.51cto.com/5911271/1897550
以上是关于Python之路35-subprocess模块和Python3中常用执行shell命令方法的主要内容,如果未能解决你的问题,请参考以下文章