python实现得到当前登录用户信息的方法
本文实例讲述了python实现得到当前登录用户信息的方法。分享给大家供大家参考,具体如下:
在linux环境下,python更多的被当做替代SHELL的工具语言,其实linux中,本身就有很多命令是通过python扩展的,我想记录下一些常用的命令以及使用方式,以便以后查看.
第一部分:python得到得到当前登录用户信息
defget_current_user(): try: #pwdisunixonly importpwd returnpwd.getpwuid(os.getuid())[0] exceptImportError,e: importgetpass returngetpass.getuser() defget_default_group_for_user(user): importgrp group=None try: gid=pwd.getpwnam(user)[3] groups=grp.getgrgid(gid)[0] exceptKeyError,e: print('Failedtofindprimarygroupfromuser%s',user) returngroup
注意的是pwd,grp模块只能在linux,unix下才有的.我在网上搜索到了另一个在window下得到用户组相关信息的方法,但需要安装 PythonWin32Extensions模块。可以在这里下载(http://starship.python.net/crew/mhammond/win32/),使用方法如下:
importwin32net importplatform importgetpass #Getcurrenthostnameandusername sHostname=platform.uname()[1] sUsername=getpass.getuser() #Defineaccountmembershipstotestasfalse memberAdmin=False memberORA_DBA=False forgroupsinwin32net.NetUserGetLocalGroups(sHostname,sUsername): #Ifmembershippresent,settotrue ifgroups=='Administrators': print"memberofadmin" memberAdmin=True ifgroups=='ORA_DBA': print"memberoforA_DBA" memberORA_DBA=True #ifalltruepass,elsefail if(memberAdmin==True)and(memberORA_DBA==True): print"membershipisgood" else: print"currentaccountdoesnothavethepropergroupmembership"
得到用户名,当然只是第一步,后面还涉及到修改权限等操作。后面有时间再记录.
希望本文所述对大家基于Django框架的Python程序设计有所帮助。