我正在尝试开发一个脚本或工具来告诉每个用户占用计算机的时间,以便管理和平衡资源。至于用户名,Python 提供了通过 os.getlogin() 获取的简洁方法。但是,我搜索并找不到一个简洁的 Python API 方法来获取该特定用户的登录和注销时间。对于 Windows,我必须“查询用户”,这不适用于 Windows XP。而对于 Linux,我不得不承认我并不擅长它。你们知道跨平台和 Python API 的方法吗?
非常感谢!迪
Windows 解决方案(应该在 xp 上工作)
>>> import win32net,time
>>> users,nusers,_ = win32net.NetUserEnum(None,2)
>>> for user in users:
... print "%-20s %s"%(user['name'],time.ctime(user['last_logon']))
...
Administrator Sat Oct 06 04:59:59 2012
Bob Mon Nov 05 10:03:17 2012
Guest Wed Dec 31 16:00:00 1969
joran Fri May 10 08:04:36 2013
SophosSAUNEREUS0 Fri May 10 13:31:26 2013
Umläut Tue Nov 13 16:21:49 2012
您可以使用
import platform
platform.uname()
确定您所在的操作系统并为每个操作系统使用单独的方法,例如
import platform
os_name = platform.uname()[0].lower()
if os_name == "windows":
get_win_login_time()
elif os_name.endswith("nix"):
get_nix_login_time()
....
回答您的问题重新网络用户
import win32net, win32netcon, platform
win32net.NetUserEnum(win32net.NetGetDCName(),2,win32netcon.FILTER_NORMAL_ACCOUNT)