Python如何执行shell cmd'last | grep“logged in”'使用subprocess.Popen

2024-06-06 22:21:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Python中执行这个shell命令并得到返回结果,但是下面的代码无法得到正确的结果

command = 'last | grep "logged in"'
p = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
sto, err = p.communicate()

正确的结果应该是这样的

root pts/0 218.17.185.24 Tue Dec 10 15:34 still logged in

但我得到的是这个

wtmp begins Wed Nov 27 18:30:26 2019

谁对这个问题有想法?首先谢谢


Tags: 代码in命令stdoutshellgrepcommandsplit
1条回答
网友
1楼 · 发布于 2024-06-06 22:21:40

你试过只用os.system来代替吗

import os
os.system('last | grep "logged in"')

给了我以下信息:

user    pts/0        1.2.3.4      Tue Dec 10 11:13   still logged in

编辑:要存储输出:

import os
result = os.popen('last | grep "logged in"').read()

相关问题 更多 >