为了账号安全,请及时绑定邮箱和手机立即绑定

将os.system的输出分配给变量并防止其显示在屏幕上

将os.system的输出分配给变量并防止其显示在屏幕上

忽然笑 2019-06-27 17:22:42
我希望分配我使用的命令的输出os.system并阻止它输出到屏幕上。但是,在下面的代码中,输出被发送到屏幕上,并打印为var是0,我猜这表示命令是否成功运行。是否有任何方法将命令输出分配给变量,并阻止它在屏幕上显示?var = os.system("cat /etc/services")print var #Prints 0将os.system的输出分配给变量并防止其显示在屏幕上
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

从“Python中Bash Backticks的等价性“,我很久以前就问过,你可能想用的是popen:

os.popen('cat /etc/services').read()

Python 3.6的docs,

这是使用subprocess.Popen实现的;请参阅该类的文档,以获得更强大的方法来管理和与子进程通信。


以下是对应的代码subprocess:

import subprocess

proc = subprocess.Popen(["cat", "/etc/services"], stdout=subprocess.PIPE, shell=True)(out, err) = proc.communicate()print "program output:", out


查看完整回答
反对 回复 2019-06-27
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

命令模块是一种相当高级的方法:

import commands
status, output = commands.getstatusoutput("cat /etc/services")

状态为0,输出是/etc/services的内容。


查看完整回答
反对 回复 2019-06-27
  • 3 回答
  • 0 关注
  • 1888 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信