首页 > 电脑专区 > 电脑教程 >

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

来源:互联网 2023-02-21 18:33:16 126

相信很多小伙伴都知道,我们运行命令(程序)可以直接通过os模块提供的system方法来完成,然而如果我们想在程序中得到命令的输出结果,这时要怎么办呢?xvW办公区 - 实用经验教程分享!

下面小编就教大家怎么运行一个命令然后得到它的输出结果(不管是否成功运行)。xvW办公区 - 实用经验教程分享!

教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

工具/原料

  • Python

方法/步骤

  • 1

    和system方法一样,同样是要用到os模块。xvW办公区 - 实用经验教程分享!

    import osxvW办公区 - 实用经验教程分享!

    导入os模块xvW办公区 - 实用经验教程分享!

    我们要用到的这个方法是os.popen,os.popen的作用是打开一个管道(听到管道想必小伙伴想到什么了吧)xvW办公区 - 实用经验教程分享!

    os.popen的用法是fd popen(程序路径,模式权限,缓冲区大小)xvW办公区 - 实用经验教程分享!

    这里小编运行一个ping 127.0.0.1xvW办公区 - 实用经验教程分享!

    rs = os.popen("ping 127.0.0.1")xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 2

    此时我们可以print(rs)看看,os.popen方法的返回值到底是什么。xvW办公区 - 实用经验教程分享!

    可以看到os._wrap_close object at 0x02DBBA90>xvW办公区 - 实用经验教程分享!

    这时一个操作系统的wrap控制台对象,内存地址为0x02DBBA90xvW办公区 - 实用经验教程分享!

    其实这就是fd,windows中的句柄。xvW办公区 - 实用经验教程分享!

    fd是unix中的一个概念,windows中叫句柄。xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 3

    我们接下来要做的是,把fd中的字节读出来。xvW办公区 - 实用经验教程分享!

    要用到的是一个read方法:xvW办公区 - 实用经验教程分享!

    read方法的作用是从fd读取n个字节。xvW办公区 - 实用经验教程分享!

    我们把fd对象提供了read方法,我们直接object.read即可读取所有字节xvW办公区 - 实用经验教程分享!

    print(rs.read())xvW办公区 - 实用经验教程分享!

    打印出read方法的返回值,即我们想要的数据,命令的结果。xvW办公区 - 实用经验教程分享!

    如果是很初学者的初学者有幸看到小编这篇经验,这句话可以拆为2句:xvW办公区 - 实用经验教程分享!

    a =rs.read()xvW办公区 - 实用经验教程分享!

    print(a)xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 4

    其实我们可以做一个超简易的命令行:xvW办公区 - 实用经验教程分享!

    代码如下:xvW办公区 - 实用经验教程分享!

    #-*- coding:utf-8 -*-xvW办公区 - 实用经验教程分享!

    import osxvW办公区 - 实用经验教程分享!

    while True:xvW办公区 - 实用经验教程分享!

    cmd = input("请输入您要运行的命令(路径分隔符前请增加\),退出请输入q:")xvW办公区 - 实用经验教程分享!

    if cmd == "q":xvW办公区 - 实用经验教程分享!

    #如果输入q退出循环退出程序xvW办公区 - 实用经验教程分享!

    breakxvW办公区 - 实用经验教程分享!

    else:xvW办公区 - 实用经验教程分享!

    #否则使用os.popen从命令打开管道并通过管道获得命令输出结果xvW办公区 - 实用经验教程分享!

    rs = os.popen(cmd)xvW办公区 - 实用经验教程分享!

    cmdout = rs.read()xvW办公区 - 实用经验教程分享!

    if cmdout == "":xvW办公区 - 实用经验教程分享!

    #如果运行出错xvW办公区 - 实用经验教程分享!

    print("未找到程序或出错")xvW办公区 - 实用经验教程分享!

    else:xvW办公区 - 实用经验教程分享!

    #打印输出结果xvW办公区 - 实用经验教程分享!

    print(cmdout)xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 5

    来看看运行结果?xvW办公区 - 实用经验教程分享!

    怎么样?是不是很酷炫?xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 5本页面未经授权抓取自百度经验
  • 是否帮到了您?如果有帮到您,请点个关注、点个投票、点个分享、点个赞

  • 1

    怎么关注?xvW办公区 - 实用经验教程分享!

    在经验的右上角小编头像旁边点击关注,如图。xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 2

    怎么点赞?xvW办公区 - 实用经验教程分享!

    请在经验左侧点赞,如图。xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 3

    怎么投票?xvW办公区 - 实用经验教程分享!

    在经验的下方点击投票,如图。xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 4

    如果觉得小编写的还不错,可以动动鼠标把它分享给您的朋友。xvW办公区 - 实用经验教程分享!

    如何分享,鼠标移动到右下角第一个按钮上,在弹出的选项中进行分享,如图。xvW办公区 - 实用经验教程分享!

    不尽感激。xvW办公区 - 实用经验教程分享!

    教你怎么用Python运行命令(外部程序)并获得结果xvW办公区 - 实用经验教程分享!

  • 注意事项

    • 如有疑问,可以点击投票、有得给小编留言,小编看到会第一时间给您回复,谢谢
    • 如果喜欢本经验,请关注我。可以把它分享给您的朋友,请点个投票点个收藏。谢谢,您的支持是我最大的动力。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!xvW办公区 - 实用经验教程分享!


    标签: python操作系统运行命令外部

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码