我想知道是否有人登录了计算机。为此,我写了这个小脚本,但我想知道是否有更好的方法。
import os
def get_sessions():
process = os.popen('who | grep -v "\(unknown\)"')
result = process.read()
process.close()
fields = ["login", "tty", "date", "time", "hostname"]
return map(lambda x: dict(zip(fields, x.split())), result.splitlines())
def is_someone_else_logged():
username = os.getlogin()
return filter(lambda x: x["login"] != username, get_sessions()) != []
另外,你能不能注意到我在这里做的所有非pythonics事情?
答案 0 :(得分:1)
要使登录的用户使用subprocess.check_output
和users
命令来获取登录用户:
from subprocess import check_output
from os import getlogin
c = check_output("users")
users = set(c.split())
print(all(user in {getlogin(),'(unknown)' } for user in users))
答案 1 :(得分:0)
您可以使用psutil的get_users(),检查https://github.com/giampaolo/psutil