python写一个获取cmd输出内容的代码
时间: 2023-04-06 12:03:42 浏览: 94
可以使用Python的subprocess模块来获取cmd输出内容,示例代码如下:
```python
import subprocess
cmd = 'dir' # cmd命令
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate() # 获取输出内容和错误信息
print(out.decode('gbk')) # 输出内容需要解码
```
这段代码可以获取cmd命令"dir"的输出内容。
相关问题
帮我用python写一段操作cmd的代码
以下是一个使用Python操作cmd的示例代码:
```python
import os
# 执行cmd命令
os.system('cmd命令')
# 打开cmd窗口
os.system('start cmd')
# 执行多个cmd命令
os.system('cmd命令1 & cmd命令2')
# 获取cmd命令的输出结果
result = os.popen('cmd命令').read()
# 指定工作目录执行cmd命令
os.chdir('工作目录')
os.system('cmd命令')
# 判断系统是否为Windows
if os.name == 'nt':
# 在Windows系统下执行的操作
pass
else:
# 在其他系统下执行的操作
pass
```
你可以根据自己的需要,选择适合的操作来执行cmd命令。
python实时获取cmd输出
可以使用Python的`subprocess`模块实现实时获取cmd输出。具体步骤如下:
1. 导入`subprocess`模块:
```python
import subprocess
```
2. 创建子进程:
```python
process = subprocess.Popen(['cmd', '/c', 'command'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
```
其中,`command`是要执行的命令,`stdout`和`stderr`参数用于指定子进程的标准输出和标准错误输出。
3. 循环读取输出:
```python
while True:
output = process.stdout.readline()
if output == '' and process.poll() is not None:
break
if output:
print(output.strip())
```
这里使用`readline()`方法读取子进程的标准输出,当读取到空字符串时,表示子进程已经结束,退出循环。否则,打印输出内容。
完整代码示例:
```python
import subprocess
process = subprocess.Popen(['cmd', '/c', 'ping www.baidu.com'], 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())
while True:
err = process.stderr.readline()
if err == '' and process.poll() is not None:
break
if err:
print(err.strip())
```
上述代码将实时获取ping命令的输出,并分别打印标准输出和标准错误输出。