使用Python在GNU / Linux操作系统上检查用户是否存在的最简单方法是什么?
是否比发布ls ~login-name
和检查退出代码要好?
如果在Windows下运行?
此答案基于answer by Brian。它添加了必要的try...except
块。
检查用户是否存在:
import pwd
try:
pwd.getpwnam('someusr')
except KeyError:
print('User someusr does not exist.')
检查组是否存在:
import grp
try:
grp.getgrnam('somegrp')
except KeyError:
print('Group somegrp does not exist.')
使用pwd,您可以使用pwd.getpwall()获得所有可用用户条目的列表。如果您不喜欢try:/ except:块,则可以使用。
import pwd
username = "zomobiba"
usernames = [x[0] for x in pwd.getpwall()]
if username in usernames:
print("Yay")
我将解析/ etc / passwd以获取相关的用户名。用户可能不一定具有homedir。
类似于this answer,我会这样做:
>>> import pwd
>>> 'tshepang' in [entry.pw_name for entry in pwd.getpwall()]
True