当前位置: 首页 > 面试题库 >

Linux命令行调用没有从os.system返回什么?

鲜于喜
2023-03-14
问题内容

我需要对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等捕获输出。

这方面的一些事情:

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


 类似资料:
  • 出于某种奇怪的原因..返回,而linux中的命令返回 星期日;星期一;星期二;星期三;星期四;星期五;星期六 任何帮助都将不胜感激,谢谢。

  • 问题内容: 基本上我有一个看起来像 我只想从命令行执行它而不进入MATLAB。我试了几个选项(,,,,等),没有一次成功。我最终进入MATLAB,必须输入“ quit”退出。 解决办法是什么? 问题答案: MATLAB可以运行脚本,但不能从命令行运行函数。这是我的工作: 档案: 输入以下内容进行调用:

  • 问题内容: 我正在尝试使用重定向和管道从Java执行一些Linux命令。Java如何调用或命令? 我试图用这个: 但是它与重定向或管道不兼容。 问题答案: 在你的shell中不执行命令 尝试 代替。 编辑::我的系统上没有,所以我改用。以下为我工作

  • 问题内容: 当我以root身份输入Python时,它将返回,但是当我尝试将其分配给变量时,会将x的值设置为0。为什么?(: 问题答案: 返回(编码的)进程出口值。意味着成功: 在Unix上,返回值是以指定的格式编码的进程的退出状态。请注意,POSIX没有指定C system()函数的返回值的含义,因此Python函数的返回值与系统有关。 您看到的输出将写入,因此您的控制台或终端不会返回给Pytho

  • 问题内容: 如何从Qt4在Linux下运行命令行程序?当然,我想以某种可以使用的方式获得输出。我会将其用于,但是以后再知道它是一件好事。 问题答案:

  • 问题内容: 我需要从python运行此linux命令,并将输出分配给变量。 我试过使用pythons命令库来做到这一点。 但是a结束了。我得到的输出是: 但预期的输出是: 有人知道如何阻止输出中断吗?有人可以建议其他方法吗? 问题答案: 显然限制了其输出以适合终端的假定宽度。您可以使用环境变量或选项覆盖此宽度。 该模块已弃用。使用得到的输出,并在Python进行过滤。不要按照其他答案的建议使用,在