我需要对linux进行一些命令行调用,并从中获取返回值,但是按照下面的方式执行只返回0,而它应该返回一个时间值,比如00:08:19,我在常规命令行中测试完全相同的调用,它返回时间值00:08:19,所以我对自己做错了什么感到困惑,因为我认为这是在python中如何做的.

import os
retvalue = os.system("ps -p 2993 -o time --no-headers")
print retvalue

推荐答案

返回的是执行该命令的返回值.在直接执行时,可以看到stdout中命令的输出.返回0意味着执行中没有错误.

使用popen等捕捉输出.

沿着这条路由:

imp或t subprocess as sub
p = sub.Popen(['your command', 'arg1', 'arg2', ...],stdout=sub.PIPE,stderr=sub.PIPE)
output, err或s = p.communicate()
print output

imp或t os
p = os.popen('command',"r")
while 1:
    line = p.readline()
    if not line: break
    print line

大约:Popen and python

Linux相关问答推荐

如何将netcdf文件列表中的特定变量添加到不同的文件中?

列出Linux上特定目录和子目录名称的bash命令

在Linix&;Mac中运行Reaction本机项目时出现问题

如何知道进程组中的所有进程是否都已收集?

Linux TTY 操作顺序

操作系统信号处理循环 - 阻塞或非阻塞读取?

Dockerfile:无法复制文件

在三星 chromebook 上编程

在 puppet 中管理 linux 的用户密码

Linux 进程在后台 - 在作业(job)中 Stopped停止?

用于 GCC/G++ 的宏来区分 Linux 和 Mac OSX?

使用 linux 命令行 (bash) 从网络摄像头拍照

如何在不重新打印的情况下更新终端中的打印消息

让 sudo 和 nohup 一起工作

使用sudo apt-get install build-essentials

根据文件名模式和文件内容列出文件名?

如何在 Linux 中查看日志(log)文件并在查看时应用自定义过滤器?

linux perf:如何解释和查找热点

如何通过 xmllint 使用 XSD 验证 XML 文件

如何制作和应用SVN补丁?