我想知道如何从os.system
python中删除0 ,例如,在此变量中我可以删除它而没有任何问题:
user_name = check_output('whoami').strip()
output = current-user
但问题是当我运行此变量时:
from subprocess import check_output
subtests = os.system('/home/' + user_name + '/tests/cfile --list-subtests')
output = subtests 1
subtests 2
0
如果我从第一个命令中应用相同的命令结构
subtests = check_output('/home/' + user_name + '/intel-graphics/intel-gpu-tools/tests/' + line + ' --list-subtests').strip()
它不起作用,我遇到了几个python的错误,我进行了很多研究,但到目前为止,我还没有找到很好的解决方案。
注意:我正在使用python 2.7
当您调用时os.system
,它将开始一个新的过程。该进程的标准输入和输出流已连接到您的Python程序。
即,当您调用os.system
任何子进程输出时,都会将其写入终端(或主程序输出所到达的任何位置)。像这样:
>>> result = os.system(".../cfile --list-subtests")
subtests 1
subtests 2
>>> result
0
上面的“子测试1” /“子测试2”行仅仅是从子进程传递到终端的文本。它从未被Python处理过,也没有进入任何变量。返回值仅为0,这通常意味着操作已成功完成。
如果你想捕捉的输出使用的subprocess
模块,无论是check_output
(酷似你在第一个例子中已经使用!)或通用Popen
:
>>> process = subprocess.Popen([".../cfile", "--list-subtests"], stdout=subprocess.PIPE)
>>> process_out, process_err = process.communicate()
>>> process_out
'subtests 1\nsubtests 2\n'
>>> process.returncode
0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句