python如何获取cmd命令框里的内容

1.我有一个程序是类似CMD窗口类型的,这个程序里有1、2、3、4、5等几个选项,我需要输入数字来选择要执行的项目,我在python里调用这个程序,并且通过python输... 1.我有一个程序是类似CMD窗口类型的,这个程序里有1、2、3、4、5等几个选项,我需要输入数字来选择要执行的项目,我在python里调用这个程序,并且通过python输入参数,然后我想抓取程序运行后的结果,并把它显示到IDLE的执行窗口里面,需要怎么做呢?
2.我能否通过python来读取CMD命令行里的内容,我想根据它里面的内容判断我的程序是否运行完了。
以上两个问题哪位高手帮帮忙吧,非常感谢!
展开
 我来答
nbyh2012
2013-07-17 · TA获得超过3278个赞
知道小有建树答主
回答量:483
采纳率:100%
帮助的人:800万
展开全部

你的程序使用命令行参数比较好。

请看下例:

python test.py 1


python会读取命令行参数,你可以通过sys.argv列表访问命令行参数:

import sys
mod = sys.argv[1]
# 然后根据mod的不同,运行不同的代码


给你介绍一个python内置库,叫argparse。使用它,解析命令选项非常方便!


也可以使用标准输入,你的需求不建议这样做:

mod = raw_input('你要运行的程序:')


望采纳,谢谢支持!

追问
是这样的,我的那个程序是个写好了的命令行窗口程序,它并不是windows自带的cmd命令行,而是类似这样的一个窗口程序,它是用来测试的,我输入数字1、2、3等等数字后,就会跑相应的测试程序,跑完后会出来结果,显示在这个窗口程序里面,我想把这里的结果抓取出来,然后让他显示在IDLE这个python 的执行窗口里。
追答
抱歉我没写过窗口的程序。
日TimE寸
推荐于2017-09-18 · TA获得超过9568个赞
知道大有可为答主
回答量:1358
采纳率:83%
帮助的人:475万
展开全部

可以通过sys包的argv获取命令行参数

sys.argv是一个列表,第0项默认为文件名,接下来就是输入的参数

比如命令框中输入:

python test.py hi 27

那么:

sys.argv 为 ['test.py', 'hi', '27']

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leilmyxwz
推荐于2017-10-07 · TA获得超过180个赞
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:150万
展开全部

使用popen运行process并打开管道 通过管道进行输入输出操作 看下subprocess的文档 不难的 给个例子:

		data  = subprocess.Popen (cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, shell = True)

li = data.stdout.readline ()
更多追问追答
追问
我试过了,可以读到cmd里的信息。那可不可以读取其他程序里的内容呢?比如,我有个类似cmd类型的程序,它叫abc.exe吧,我想读它里面的内容,能否将上面的参数‘cmd’改为abc.exe呢?还是说有其他的方法?
追答
没有问题的 它其实是把程序的输出stdout定向给管道
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式