hua*_*uan 2 python operating-system pwd
目前我正在使用pwd.getpwall(),它显示了整个密码数据库.但我只想要计算机的用户帐户.使用getpwall()我无法做到这一点......
if 'foo' in pwd.getpwall():
do stuff
Run Code Online (Sandbox Code Playgroud)
因为pwd.getpwall()返回一个对象列表.如果我想检查用户是否存在,我将不得不做一个循环.我认为有一种更简单的方法可以做到这一点.
在手册的同一页面中:
Run Code Online (Sandbox Code Playgroud)pwd.getpwnam(name)
返回给定用户名的密码数据库条目.
这是现有用户和不存在用户的结果:
>>> import pwd
>>> pwd.getpwnam('root')
pwd.struct_passwd(pw_name='root', pw_passwd='*', pw_uid=0, pw_gid=0, pw_gecos='System Administrator', pw_dir='/var/root', pw_shell='/bin/sh')
>>> pwd.getpwnam('invaliduser')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'getpwnam(): name not found: invaliduser'
Run Code Online (Sandbox Code Playgroud)
因此你可以这样做:
try:
pwd.getpwnam(name)
except KeyError:
# Handle non existent user
pass
else:
# Handle existing user
pass
Run Code Online (Sandbox Code Playgroud)
注意:in
操作员无论如何都要进行循环检查给定项目是否在列表中(参考).
归档时间: |
|
查看次数: |
3330 次 |
最近记录: |