教你怎么用Python运行命令(外部程序)并获得结果
1、和system方法一样,同样是要用到os模块。import os导入os模块我们要用到的这稍僚敉视个方法是os.popen,os.popen的作用是打开一个管道(听到管道想必小伙伴想到什么了考稗挠黥吧)os.popen的用法是fd popen(程序路径,模式权限,缓冲区大小)这里小编运行一个ping 127.0.0.1rs = os.popen("ping 127.0.0.1")
2、此时我们可以print(rs)看看,os.popen方法的返回值到底是什么。可以看到<os._wrap_close object at 0x02DBBA90>这时一个操作系统的wrap控制台对象,内存地址为0x02DBBA90其实这就是fd,windows中的句柄。fd是unix中的一个概念,windows中叫句柄。
3、我们接下来要做的是,把fd中的字节读出来。要用到的是一个read方法:read方法的作用是从fd读取n个字节。我们把fd对象提供了read方刮茕栓双法,我们直接object.read即可读取所有字节print(rs.read())打印出read方法的返回值,即我们想要的数据,命令的结果。如果是很初学者的初学者有幸看到小编这篇经验,这句话可以拆为2句:a =rs.read()print(a)
4、其实我们可以做一个超简易的命令行:代码如下:#颍骈城茇-*- coding:utf-8 -*-import oswhile True: cmd = input("请输入您要运行的命令(侨嚅检货路径分隔符前请增加\),退出请输入q:") if cmd == "q": #如果输入q退出循环退出程序 break else: #否则使用os.popen从命令打开管道并通过管道获得命令输出结果 rs = os.popen(cmd) cmdout = rs.read() if cmdout == "": #如果运行出错 print("未找到程序或出错") else: #打印输出结果 print(cmdout)
5、来看看运行结果?怎么样?是不是很酷炫?