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 样式语法进行词法分析

 

 

posted @ 2023-04-04 20:10  羊脂玉净瓶  阅读(76)  评论(0)    收藏  举报