python执行shell命令
Python调用Shell,有两种方法:os.system(cmd)或os.popen(cmd)脚本执行过程当中的输出内容。实际使用时视需求状况而选择。
二者的区别是:
- os.system(cmd)的返回值是脚本的退出状态码,只会有0(成功),1,2
- os.popen(cmd)返回脚本执行的输出内容做为返回值
注意:os.system是简单粗暴的执行cmd指令,如果想获取在cmd输出的内容,是没办法获到的
好比计算一个文件的md5值:
os.system(cmd) 该方法在调用完shell脚本后,返回一个信号代码 (0表示成功)
>>> import os >>> os.system("md5sum test.sh") bc858e34f673dd73eb253c865b615db6 test.sh 0 >>>
os.popen(cmd)
如果想获取控制台输出的内容,那就用os.popen的方法了,popen返回的是一个file对象,跟open打开文件一样操作了,r是以读的方式打开
使用os.popen调用脚本的状况
>>> res=os.popen("md5sum test.sh") >>> res.read() 'bc858e34f673dd73eb253c865b615db6 test.sh\n'
>>> r=res.readlines() >>> r ['bc858e34f673dd73eb253c865b615db6 test.sh\n']
更强大的工具,请使用subprocess
shlex 对 Shell 样式语法进行词法分析