号外:《黑客攻防入门学习课程》现已推出,喜欢的朋友请关注!!!

Python编程中如何调用Linux/Windows下的命令

python 泰泰 848℃ 0评论

【导读】

在编程开发过程中,有时候难免会需要调用系统下的 Shell 命令来辅助完成一些相关的操作,那么在 Python 编程开发中如何才能调用系统下的shell呢?

以下提到的方法均适合调用 windows 下的 shell 命令,也适合调用 Linux 下的 shell 命令操作。

一、os 模块

1.1  system( )方法

说明:system( )方法会创建子进程并将指定命令传至其(shell)运行,最终返回执行后的效果(与正常执行类似)。

 

1.2  popen( )方法

说明:该方法返回的是一个类文件对象,并不会实时输出执行效果,如果需要读出其内容,只需使用 read( ) 或 readlines( ) 方法即可完成。

常见调用:

当需要得到外部shell程序的输出结果时,本方法非常有用。

演示:

注:其 \n 是由于换行引起的。

二、commands 模块

使用commands模块的getoutput方法,这种方法同popend的区别在于popen返回的是一个类文件对象,而本方法将外部程序的输出结果当作字符串返回,很多情况下用起来要更方便些。
主要方法:

  •  commands.getstatusoutput(“cmd”)         # 返回(status, output)
  • commands.getoutput(“cmd”)               #  只返回输出结果
  • commands.getstatus(“file”)             # 返回ls -ld file的执行结果字符串,调用了getoutput,不建议使用此方法

实例演示:

 

三、 subprocess模块

根据Python官方文档说明,subprocess模块是用于取代上面这些模块。

有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来执行。

实例演示:

subprocess system( ) 相比的优势是它更灵活(你可以得到标准输出,标准错误,“真正”的状态代码,更好的错误处理,等..),也是未来灵活运用的一个发展趋势。

四、相关技术文档

下面是对于文中所涉及的内容的python官方文档:

  1. http://docs.python.org/lib/os-process.html     # os的exec方法族以及system方法
  2. http://docs.python.org/lib/os-newstreams.html     # popen()方法使用介绍
  3. http://docs.python.org/lib/node528.html    # subprocess使用介绍
  4. http://docs.python.org/library/subprocess.html#replacing-older-functions-with-the-subprocess-module     # 关于使用subprocess 替代老的方法

转载请注明:泰泰博客 » Python编程中如何调用Linux/Windows下的命令

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填)