年华123 2023-02-14 22:03 采纳率: 82.4%
浏览 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日