Python使用内置方法、模块调用外部命令

导读

Python使用内置方法、模块调用外部命令

Python内置调用外部命令:

  • os.system
  • os.popen
  • os.popen2
  • os.popen3
  • os.popen4
  • commands模块
  • subprocess模块

在Python3中,将os.popen2、os.popen3、os.popen4、commands等模块方法移除
所以不用花精力了解,可以绕过了

os.system方法

os.system("cmd") 调用外部命令,使用非常简单

程序只能返回命令运行返回码:0正常,1异常;但无法捕获cmd进程执行结果

Python使用内置方法、模块调用外部命令

优点:使用简单,可以执行一句话cmd行
缺点:无法获取cmd执行结果,不能进行交互式调用,以及复杂调用操作

os.popen、os.popen2、os.popen3、os.popen4方法

该popen函数族,通过管道与调用外部命令交互通讯

popen函数族调用方与被调用外部cmd进程之间建立一个通讯管道,通过管道实现与外部cmd进程交互通讯

  • os.popen: 只捕获标准输出,捕获不到标准错误
  • os.popen2:返回2个对象,一个是标准输入,一个是标准输出
  • os.popen3:返回3个对象,标准输入,标准输出,标准错误输出
  • os.popen4:返回2个对象,pip_in和pip_out_err,pip_in是标准输入,而标准输出和标准错误都在一个管道pip_out_err

os.popen示例一:

Python使用内置方法、模块调用外部命令

os.popen示例二:

Python使用内置方法、模块调用外部命令

os.popen2返回2个对象,一个是标准输入,一个是标准输出,示例:

Python使用内置方法、模块调用外部命令

os.popen3返回3个对象,标准输入,标准输出,标准错误输出

Python使用内置方法、模块调用外部命令

commands模块

commands是Python的内置模块,可以调用Linux shell命令

该模块主要提供三个函数:

  • commands.getoutput('cmd') 执行cmd命令,并返回执行结果
  • commands.getstatus('file') 输入文件路径,返回ls -ld file执行结果
  • commands.getstatusoutput('cmd') 执行cmd命令,返回一个结果元组(status, result),result包含标准输出和标准错误

commands模块使用示例:

Python使用内置方法、模块调用外部命令

最后

如果内容有误,欢迎评论区指正!

喜欢我的朋友们,麻烦点一波关注,谢谢!

Python使用内置方法、模块调用外部命令


分享到:


相關文章: