python用subprocess模块执行cmd命令并等待其执行完毕

用system.os()执行cmd命令有一点坑,cmd命令没有执行完,就直接跳到下一步了,百度了一下,大概是因为运行cmd命令时创建了另一个进程来执行,推荐使用subprocess模块:

import subprocess

cmd='命令'
p=subprocess.Popen(cmd,shell=True)
return_code=p.wait()  #等待子进程结束,并返回状态码;
Python中,我们可以使用`subprocess`模块等待执行完毕。`subprocess`模块提供了一种管理子进程的方式,可以在Python脚本中执行外部命令。 首先,我们需要导入`subprocess`模块。然后,可以使用`subprocess.run()`函数来执行外部命令,并等待执行完毕。`subprocess.run()`函数会阻塞当前进程,直到执行的命令完成。 下面是一个使用`subprocess.run()`函数等待执行完毕的示例代码: ```python import subprocess # 执行外部命令 result = subprocess.run(['cmd', '/c', 'your_command'], capture_output=True) # 等待执行完毕 result.wait() # 检查执行结果 if result.returncode == 0: print("命令执行成功") print("命令输出结果:", result.stdout.decode('utf-8')) else: print("命令执行失败") print("错误信息:", result.stderr.decode('utf-8')) ``` 上述代码中,`subprocess.run()`函数的第一个参数是待执行的命令,以列表形式传入。在Windows系统中,我们可以使用`cmd`命令作为参数来执行命令。`/c`参数表示执行完命令后自动关闭命令行窗口。 `capture_output=True`参数用于捕获命令的输出。`result.wait()`方法会阻塞当前进程,直到命令执行完毕。 最后,我们可以通过`result.returncode`来获取命令的返回码,进而判断命令是否执行成功。如果返回码为0,则表示命令执行成功,可以通过`result.stdout.decode('utf-8')`来获取命令的输出结果。如果返回码不为0,则表示命令执行失败,可以通过`result.stderr.decode('utf-8')`来获取错误信息。 这样,我们就可以使用`subprocess.run()`函数实现在Python等待执行完毕的功能。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值