我试图有能力从我在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)