python: 调用cmd执行命令

本文介绍了四种在Python中执行系统命令和进程管理的方法:使用`subprocess.Popen`进行管道通信,`tempfile.SpooledTemporaryFile`结合`subprocess.Popen`执行命令,`os.system`和`os.popen`直接执行命令,以及命令之间的逻辑控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

procId = subprocess.Popen('adb shell', stdin = subprocess.PIPE)
procId.communicate('command1\
command2\
exit\
')

官网:https://docs.python.org/3/library/subprocess.html
方法二:

out_temp = tempfile.SpooledTemporaryFile(max_size=10 * 1000)
fileno = out_temp.fileno()
sp = subprocess.Popen(f'cmd', shell=True, stdin=subprocess.PIPE, stdout=fileno, stderr=fileno)
sp.stdin.write(f'cmd2\n'.encode('utf-8'))
sp.stdin.flush()
out_temp.seek(0)
info = out_temp.read()

方法三:

os.system('cmd'

返回值为0:代表成功;1:代表失败

方法四:

os.popen("cd.. && cd demo && touch 2.py ") 

注意:

  1. 命令被分号“;”分隔,这些命令会顺序执行下去;
  2. 命令被“&&”分隔,这些命令会顺序执行下去,遇到执行错误的命令停止;
  3. 命令被双竖线“||”分隔,这些命令会顺序执行下去,遇到执行成功的命令停止,后面的所有命令都将不会执行;
### 如何在 Python 中执行 CMD 命令 #### 使用 `subprocess` 模块 为了更灵活地控制命令的输入和输出,推荐使用 `subprocess` 模块中的函数来执行命令。下面是一个简单的例子: ```python import subprocess # 执行 ipconfig 并捕获其输出 result = subprocess.run(["ipconfig"], capture_output=True, text=True) if result.returncode == 0: print("命令执行成功") print(result.stdout) else: print("命令执行失败") print(result.stderr) ``` 这段代码通过 `subprocess.run()` 函数运行了一个 Windows 的 `ipconfig` 命令,并且设置了参数 `capture_output=True` 来捕捉标准输出和错误流,同时设置 `text=True` 将输出作为字符串处理[^1]。 #### 使用 `os.system` 对于只需要简单执行命令而不需要获取返回数据的情况,可以考虑使用 `os.system`: ```python import os exit_status = os.system("ipconfig") if exit_status == 0: print("命令执行成功") else: print("命令执行失败") ``` 这里直接调用了系统的 shell 解释器去执行给定的命令串,但是这种方式无法方便地读取命令产生的输出[^3]。 #### 使用 `os.popen` 当既想要执行命令又希望得到它的输出时,可以选择 `os.popen` 方法: ```python import os command_result = os.popen('ipconfig').read() print(command_result) ``` 此方法会打开一个新的管道到指定命令并将结果作为一个可迭代对象返回,之后可以通过 `.read()` 获取完整的输出内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值