|
|
鱼油你好!在Python中调用CMD命令,最常用的是 subprocess 模块,当然也可以用简单的 os.system。推荐使用 subprocess,因为它更强大、更安全。
方法一:os.system(简单但功能弱)
直接执行命令,但拿不到输出结果。
- import os
- os.system('dir')
复制代码
方法二:subprocess.run(推荐)
可以获取输出,并且支持更多参数。
- import subprocess
- # 执行命令并等待完成
- result = subprocess.run('dir', shell=True, capture_output=True, text=True)
- # 打印输出
- print(result.stdout)
- # 如果有错误,打印错误信息
- if result.returncode != 0:
- print(result.stderr)
复制代码
方法三:subprocess.Popen(高级用法)
适合需要实时交互或持续读取输出时使用。
- import subprocess
- # 启动进程
- proc = subprocess.Popen('ping 127.0.0.1', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
- # 逐行读取输出
- for line in proc.stdout:
- print(line.strip())
复制代码
几点注意:
- 命令字符串较长时,建议用列表形式避免转义问题,例如 subprocess.run(['ping', '127.0.0.1'])
- 如果需要管理员权限,可能需要配合 shell=True 或以管理员身份运行Python
- 在Windows下,避免使用 os.system 执行不可信的输入,以防命令注入
简单理解就是:临时用一下选 os.system,正式项目用 subprocess.run。快去试试吧!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|