afrcmg 2023-02-14 22:03 采纳率: 87.5%
浏览 27
已结题

python的命令行控制方法os.popen的使用

我想用python打开cmd黑框,并且自动输入命令,请问有方法实现吗?

因为我没找到方法,所以退而求其次,想用os模块直接实现命令行,网上说有os.system和os.popen两种方法,对比后我选择了后者。
但现在有个问题,我运行的命令行可能有10秒到1分钟左右。本来如果在cmd里输入命令,那么这段时间里会不断出现命令的反馈, 一行行的信息,但是现在什么也看不到。

所以,要么有没有能直接使用cmd的方法?要么能否让os.popen在过程中就反馈命令行信息?

  • 写回答

3条回答 默认 最新

  • 梦想橡皮擦 Python领域优质创作者 2023-02-14 22:37
    关注

    方案来自 梦想橡皮擦 狂飙组基于 GPT 编写的 “程秘”


    是的,可以使用 Python 来打开命令提示符(cmd)黑框并自动输入命令。可以使用 subprocess 模块来实现。

    如果想要观察命令在执行过程中的输出,可以使用 subprocess.Popen 类的 communicate 方法。代码如下:

    import subprocess
    
    cmd = 'your_command'
    process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    while True:
        output = process.stdout.readline()
        if output == '' and process.poll() is not None:
            break
        if output:
            print(output.strip().decode('utf-8'))
    rc = process.poll()
    

    这样,每当有输出时,就会打印出来。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月14日

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记