使用Python判断Linux中是否存在给定的登录名

Eli*_*ley 18 python username

在Linux下的Python中,根据用户的登录情况,检查用户是否存在的最简单方法是什么?

发出'ls~login-name'并检查退出代码要好吗?

如果在Windows下运行?

Acu*_*nus 29

这个答案建立在Brian的答案之上.它增加了必要的try...except块.

检查用户是否存在:

import pwd

try:
    pwd.getpwnam('someusr')
except KeyError:
    print('User someusr does not exist.')
Run Code Online (Sandbox Code Playgroud)

检查组是否存在:

import grp

try:
    grp.getgrnam('somegrp')
except KeyError:
    print('Group somegrp does not exist.') 
Run Code Online (Sandbox Code Playgroud)


Bri*_*new 10

bagnew在Unix下查找我的userid():

import pwd
pw = pwd.getpwnam("bagnew")
uid = pw.pw_uid
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅pwd模块信息.


Pow*_*eke 5

使用 pwd,您可以使用 pwd.getpwall() 获取所有可用用户条目的列表。如果您不喜欢 try:/ except: 块,这可以工作。

import pwd

username = "zomobiba"
usernames = [x[0] for x in pwd.getpwall()]
if username in usernames:
    print("Yay")
Run Code Online (Sandbox Code Playgroud)

  • 好吧,但是没有理由不喜欢“try... except”块。使用“getpwnam”查询单个用户也比使用“getpwall”查询所有用户更有效。 (4认同)