我写了一个小代码:
import os
os.system('users')
os.system('w')
这个指纹
ubuntu
09:27:25 up 9 days, 21:23, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ubuntu pts/0 42.99.164.66 09:06 5.00s 0.10s 0.00s sh -c w
但当我尝试:
import os
from pyslack import SlackClient
user_name = os.system('users')
login_details = os.system('w')
print user_name
print login_details
它具有以下输出:
ubuntu
09:28:32 up 9 days, 21:24, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ubuntu pts/0 42.99.164.66 09:06 0.00s 0.11s 0.00s w
0
0
现在我不确定为什么我不能将结果存储在变量中,即为什么它要打印0?而正确的方法应该是什么呢?
os.system
返回命令的退出代码。要捕获命令的输出,可以使用subprocess.check_output
os.system返回的值与您启动的命令的返回值相同。由于大多数调用(如“users”)都是用C编写的,所以当代码成功执行时,它们返回0(它们在
main()
末尾有一个return 0;
)。如果要保存其输出,可以将其输出路径(默认情况下为
stdout
)重定向到文本文件,然后读取文本文件。我向
subprocess.check_output
溶液鞠躬从os.system(command)开始。
os.system
只需在子shell中执行命令(字符串)。这意味着上述数据是通过调用标准C函数
system()
而不是返回值写入标准输出的。所以如果退出状态是成功,
user_name
和login_details
将得到一个零。事实上,你可以试试这个:
相关问题 更多 >
编程相关推荐