subprocess模块windows系统命令和linux系统命令

windows系统
查看所有进程 tasklist

查找指定进程 tasklist | findstr pycharm

程序名称 PID(大写) 数量 大小
python exe 2640 console 1, 11052k

查看命令帮助信息 taskkill/?

杀死进程taskkill /PID 2640 命令后空格,PID大写
强制杀死进程taskkill /F /PID 2640 (PID随机分配,命令(空格)/F(空格)/PID(空格)2640

linux系统
查看进程 ps aux
查看指定进程 ps aux | grep python
kill -9 PID

要求:在python中接收用户输入的命令,在程序中执行系统命令

import os
while True:
cmd = input(">>>:").strip()
if not cmd:continue
res = os.system(cmd)
res = 0执行成功
res = 1执行失败
os.system自动将结果打印到屏幕

os.system将结果打印到屏幕,无法管控

import subprocess
subprocess.Popen("dir") 报错
subprocess.Popen("dir",shell = True)将结果打印到屏幕上
res = subprocess.Popen("dir",shell = True,stdout = subprocess.PIPE stderr = subprocess.PIPE)
stdout正确信息管道 stderr错误信息管道
res1 = res.stdout.read()正确信息,读出为二进制
res2 = res.stderr.read()错误信息,读出为二进制
因为是系统命令,所以二进制类型跟计算机系统相关,windows为gbk二进制,其他系统为utf8二进制
print("1",res1.decode("gbk"))
res3 = res.stdout.read()
print("2",res3)>>>输出2,管道信息输出1次就没了

转载于:https://www.cnblogs.com/robert-zhou/p/10040424.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值