Как проверить, существует ли пользователь в операционной системе GNU/Linux, использующей Python?
Какой самый простой способ проверить существование пользователя в операционной системе GNU/Linux с помощью Python?
Что-нибудь лучше, чем выдать ls ~login-name
и проверить код выхода?
А если работает под Windows?
Ответы
Ответ 1
Этот ответ основывается на ответе Брайана. Он добавляет необходимый блок 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.')
Ответ 2
Чтобы просмотреть мой идентификатор пользователя (bagnew
) в Unix:
import pwd
pw = pwd.getpwnam("bagnew")
uid = pw.pw_uid
Подробнее см. pwd.
Ответ 3
Используя pwd, вы можете получить список всех доступных записей пользователя, используя pwd.getpwall(). Это может работать, если вам не нравится try:/кроме: блоков.
import pwd
username = "zomobiba"
usernames = [x[0] for x in pwd.getpwall()]
if username in usernames:
print("Yay")
Ответ 4
Я бы проанализировал /etc/passwd для данного имени пользователя. Пользователи могут не иметь homedir's.
Ответ 5
Как и этот ответ, я бы сделал следующее:
>>> import pwd
>>> 'tshepang' in [entry.pw_name for entry in pwd.getpwall()]
True