通过一个例子来探讨交互式环境下输入

有时候需要在子SHELL中输入,从而获取命令的输出,比如说,要获取WINDOWNS下面的UUID,可以

C:\>wmic
wmic:root\cli>csproduct list full


Description=Computer System Product
IdentifyingNumber=CNU416B7ZW
Name=HP ProBook 640 G1
SKUNumber=
UUID=DDEA2C7F-21BB-1111-ACD0-6C895404C0FF
Vendor=Hewlett-Packard
Version=A3008CD10003
先输入wmic命令,再输入csproduct list full命令来获得,其中输入 wmic命令后,进去了交互式界面。这个时候使用下面的代码是解决不了问题的。 
import os
print os.system('wmic')
print os.system('csproduct list full')wmic:root\cli>
光标会一直停留在wmic:root\cli>等待输入

这个时候,就必须想其他的办法,比如说:将两个命令合二为一,再获取其输出:

>>> import os
>>> P = os.popen('wmic csproduct list full')
>>> X = P.read()
>>> print X

Description=Computer System Product
IdentifyingNumber=CNU416B7ZW
Name=HP ProBook 640 G1
SKUNumber=
UUID=DDEA2C7F-21BB-1111-ACD0-6C895404C0FF
Vendor=Hewlett-Packard
Version=A3008CD10003
或者再加个过滤条件,直接获取UUID

>>> import os
>>> P = os.popen('wmic csproduct list full | findstr UUID')
>>> X = P.read()
>>> UUID = X.split('=')[1]
>>> print UUID
DDEA2C7F-21BB-1111-ACD0-6C895404C0FF
如果不将二个命令合二为一,就要直面问题,如何在交互式环境下,输入命令,从而获取结果,这里有个办法,借助subprocess模块来完成,代码如下:

>>> import subprocess
>>> rst = subprocess.check_output(['wmic', 'csproduct', 'list', 'full'])
>>> print rst

Description=Computer System Product
IdentifyingNumber=CNU416B7ZW
Name=HP ProBook 640 G1
SKUNumber=
UUID=DDEA2C7F-21BB-1111-ACD0-6C895404C0FF
Vendor=Hewlett-Packard
Version=A3008CD10003



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值