多语言展示
当前在线:696今日阅读:19今日分享:20

教你怎么用Python运行命令(外部程序)并获得结果

相信很多小伙伴都知道,我们运行命令(程序)可以直接通过os模块提供的system方法来完成,然而如果我们想在程序中得到命令的输出结果,这时要怎么办呢?下面小编就教大家怎么运行一个命令然后得到它的输出结果(不管是否成功运行)。
工具/原料

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方法的返回值到底是什么。可以看到这时一个操作系统的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

来看看运行结果?怎么样?是不是很酷炫?

是否帮到了您?如果有帮到您,请点个关注、点个投票、点个分享、点个赞
1

怎么关注?在经验的右上角小编头像旁边点击关注,如图。

2

怎么点赞?请在经验左侧点赞,如图。

3

怎么投票?在经验的下方点击投票,如图。

4

如果觉得小编写的还不错,可以动动鼠标把它分享给您的朋友。如何分享,鼠标移动到右下角第一个按钮上,在弹出的选项中进行分享,如图。不尽感激。

注意事项
1

如有疑问,可以点击投票、有得给小编留言,小编看到会第一时间给您回复,谢谢

2

如果喜欢本经验,请关注我。可以把它分享给您的朋友,请点个投票点个收藏。谢谢,您的支持是我最大的动力。

推荐信息