首页 > 解决方案 > 从 Python 中的文件创建用户帐户的最佳方法?

问题描述

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

名字,姓氏,用户名。

汤姆猫 tcat11

杰瑞老鼠 Jmouse21

迷你鼠标 Mmouse

以下是我应该创建用户的代码:

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

标签: pythonfilefile-uploaduser-accounts

解决方案


我不知道您希望在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)

推荐阅读