2024-05-17 01:20:35 发布
网友
我需要对linux进行一些命令行调用并从中得到返回,但是如下操作只是返回0当它应该返回一个时间值时,比如00:08:19,我正在常规命令行中测试完全相同的调用,它返回时间值00:08:19,所以我很困惑自己做错了什么,因为我认为这是错误的如何在python中实现。
0
00:08:19
import os retvalue = os.system("ps -p 2993 -o time --no-headers") print retvalue
最简单的方法是这样:
import os retvalue = os.popen("ps -p 2993 -o time --no-headers").readlines() print retvalue
这将作为列表返回
如果您只对流程的输出感兴趣,那么最容易使用subprocess'check_output函数:
output = subprocess.check_output(["command", "arg1", "arg2"]);
然后output将程序输出保存到stdout。查看上面的链接以获取更多信息。
返回的是执行此命令的返回值。直接执行命令时看到的是stdout中命令的输出。返回0表示执行中没有错误。
使用popen etc捕获输出。
沿着这条线的一些东西:
import subprocess as sub p = sub.Popen(['your command', 'arg1', 'arg2', ...],stdout=sub.PIPE,stderr=sub.PIPE) output, errors = p.communicate() print output
或者
import os p = os.popen('command',"r") while 1: line = p.readline() if not line: break print line
在SO上:Popen and python
最简单的方法是这样:
这将作为列表返回
如果您只对流程的输出感兴趣,那么最容易使用subprocess'check_output函数:
然后output将程序输出保存到stdout。查看上面的链接以获取更多信息。
返回的是执行此命令的返回值。直接执行命令时看到的是stdout中命令的输出。返回0表示执行中没有错误。
使用popen etc捕获输出。
沿着这条线的一些东西:
或者
在SO上:Popen and python
相关问题 更多 >
编程相关推荐