免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8035 | 回复: 8
打印 上一主题 下一主题

关于python的Popen中如何隐藏cmd运行的内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-06 16:15 |只看该作者 |倒序浏览
users =['oracle','polisy','websphere','openldap','root']
        for user in users:
                cmd = 'finger '+user
                    op =Popen(cmd,shell=True,stdout=subprocess.PIPE).stdout.readlines()
                    if len(op)>0:
                         print "The "+user +" user exists"
                    else:
                        print "The "+user +" user does not exist"

上面是代码,但是当程序运行找不到user的时候就会在屏幕中 显示“finger: oracle: no such user.” 但是这个不是python代码中的结果,有没有什么方法让这个命令运行的结果不显示再当前屏幕中?而直接显示结果“ The oracle user does not exist”。

论坛徽章:
0
2 [报告]
发表于 2009-03-06 16:17 |只看该作者
op =Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE).stderr.readlines()

论坛徽章:
0
3 [报告]
发表于 2009-03-06 16:17 |只看该作者
try...except???

论坛徽章:
0
4 [报告]
发表于 2009-03-06 16:18 |只看该作者

回复 #2 luffy.deng 的帖子

stderr和stdout区别就在这啊

论坛徽章:
0
5 [报告]
发表于 2009-03-06 16:19 |只看该作者
是的   有些输出是写到stderr的  但是stdout和stderr通常都是屏幕

[ 本帖最后由 luffy.deng 于 2009-3-6 16:22 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-03-06 16:20 |只看该作者
http://bbs3.chinaunix.net/thread-1385984-1-1.html
这个你是楼主你问的吧?你看了没有?

论坛徽章:
0
7 [报告]
发表于 2009-03-06 16:32 |只看该作者

回复 #6 luffy.deng 的帖子

估计没看,他可能以为这是两码事情

论坛徽章:
0
8 [报告]
发表于 2009-03-06 21:44 |只看该作者
还可以使用command模块。

论坛徽章:
0
9 [报告]
发表于 2009-03-07 14:25 |只看该作者
p = Popen(cmd,
                shell=True,
                close_fds=True,
                stdout=PIPE,
                stderr=PIPE)

            stdoutdata, stderrdata = p.communicate()
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP