在Python中从文件创建用户帐户的最佳方法?



我试图有能力从我在Python中上传的文件大量创建用户帐户。因此,与其一次创建一个用户,我可以给出X个用户的列表,并快速创建它们。例如,如果我有一个包含以下用户名的文件(newusers。csv)我该如何轻松地做到这一点?

名,姓,用户名

tom cat tcat11

Jerry Mouse Jmouse21

迷你鼠标

下面是我用来创建用户的代码:

def user_account():
userInformation = readFile("newusers.csv")
try:
subprocess.run(['useradd','-p', userInformation[1:]])
except:
print(f"failed to add user.")
sys.exit(1)

我不知道你在useradd命令中想要什么具体的选项等,所以我不在这里。然而,关于方法:这是一种方法,您可以通过创建User类来实现它。

import csv
class User:
def __init__(self, firstname, lastname, username):
self.firstname = firstname
self.lastname = lastname
self.username = username

def save(self):
try:
# WHATEVER COMMAND AND OPTIONS YOU ARE LOOKING TO RUN
# USING self.username, ETC. AS ARGS 
except:
print("failed to add user")
sys.exit(1) # if you don't want to attempt any of the other users
@staticmethod
def mass_save(users):
for user in users:
user.save()
@staticmethod
def read_users_from_file(file_path):
with open(file_path, "rt") as f:
users = csv.reader(f)
next(users) # Skip header row
return [User(*row) for row in users] # Unpack each userinfo row from csv upon instantiation

if __name__ == "__main__":
users = User.read_users_from_file("users.csv")
User.mass_save(users)

相关内容

最新更新