我试图建立一个脚本或工具来告诉每个用户多长时间占用电脑,以便管理和平衡资源。 作为用户名,Python提供干净的方式通过os.getlogin得到它()。 不过,我搜索,但没有找到一个整洁的Python API方法来获取特定用户的登录和退出时间。 对于Windows,我不得不“查询用户”,这并不适用于Windows XP的工作。 而对于Linux的,我得承认我不擅长。 难道你们知道一个跨平台和Python API的方式来做到这一点?
非常感谢! 迪
我试图建立一个脚本或工具来告诉每个用户多长时间占用电脑,以便管理和平衡资源。 作为用户名,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()
以确定是其中OS和使用一个单独的方法为每个OS,例如
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)