Python论坛  - 讨论区

标题:[python-chinese] [求助] 如何获得所创建的进程的返回值

2006年01月06日 星期五 15:16

Apex Liu apex.liu at gmail.com
Fri Jan 6 15:16:06 HKT 2006

目前在使用Python写一个自动化构建和自动化测试的脚本,已经基本完成了,目前美中不足的是,大多数时候需要调用其它命令行的程序来完成操作(python作为胶水),需要获得被调用程序的stdout和stderr输出,所以使用了os.popen(strCmd)的方式来创建进程并捕获其输出,这种方式目前工作正常。

但是我还想知道该进程结束时的返回值,这样就可以判断后续操作是否应该继续下去了,但是os.popen()及其系列函数都没有找到可行的方法。不知道那位大侠能够为在下指点一二?!

--
---------------------------------
Apex Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060106/17e89f84/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年01月06日 星期五 15:46

Python Python at 5j4m.net
Fri Jan 6 15:46:21 HKT 2006

Dear Apex Liu <apex.liu at gmail.com>:
	os.system 这个可以满足你的需求吗?


-----
Chachi <Python at 5j4m.com>
2006-1-6 15:45:34

---以下是您的原始邮件---
发件人:Apex Liu (apex.liu at gmail.com)
时间: Fri, 6 Jan 2006 15:16:06 +0800
主题:[python-chinese] [求助] 如何获得所创建的进程的返回值

> 目前在使用Python写一个自动化构建和自动化测试的脚本,已经基本完成了,目前美中不足的是,大多数时候需要调用其它命令行的程序来完成操作(python作为胶水),需要获得被调用程序的stdout和stderr输出,所以使用了os.popen(strCmd)的方式来创建进程并捕获其输出,这种方式目前工作正常。
> 
> 但是我还想知道该进程结束时的返回值,这样就可以判断后续操作是否应该继续下去了,但是os.popen()及其系列函数都没有找到可行的方法。不知道那位大侠能够为在下指点一二?!
> 
> --
> ---------------------------------
> Apex Liu

-----------------------


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年01月06日 星期五 16:38

Apex Liu apex.liu at gmail.com
Fri Jan 6 16:38:03 HKT 2006

不能,呵呵,因为有时候会打开一个新的控制台窗口(我目前在Win32平台下)。

但是我自己找到了解决方法:

 f = os.popen(strCmd);
 while True:
  line = f.readline();
  if len(line) == 0:
   break;
  if "\n" == line[-1]:
   line = line[:-1];
  if len(result) != 0:
   result += "\n";
  result += line;
  if bOutDirect == True:
   g_log.LOG(line);
 ret = f.close();
 print "RET is: ",
 print ret;

进程的ExitCode可以通过关闭管道时Close()函数的返回值获得,如果返回值为None,表明进程ExitCode是0。

在06-1-6,Python <Python at 5j4m.net> 写道:
>
> Dear Apex Liu <apex.liu at gmail.com>:
>        os.system 这个可以满足你的需求吗?
>
>
> -----
> Chachi <Python at 5j4m.com>
> 2006-1-6 15:45:34
>
> ---以下是您的原始邮件---
> 发件人:Apex Liu (apex.liu at gmail.com)
> 时间: Fri, 6 Jan 2006 15:16:06 +0800
> 主题:[python-chinese] [求助] 如何获得所创建的进程的返回值
>
> >
> 目前在使用Python写一个自动化构建和自动化测试的脚本,已经基本完成了,目前美中不足的是,大多数时候需要调用其它命令行的程序来完成操作(python作为胶水),需要获得被调用程序的stdout和stderr输出,所以使用了os.popen(strCmd)的方式来创建进程并捕获其输出,这种方式目前工作正常。
> >
> >
> 但是我还想知道该进程结束时的返回值,这样就可以判断后续操作是否应该继续下去了,但是os.popen()及其系列函数都没有找到可行的方法。不知道那位大侠能够为在下指点一二?!
> >
> > --
> > ---------------------------------
> > Apex Liu
>
> -----------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



--
---------------------------------
Apex Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060106/47ae1655/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号