1. 程式人生 > 實用技巧 >python生成固定格式且不會重複的使用者名稱

python生成固定格式且不會重複的使用者名稱

程式碼如下:

import os
import yaml
import io


class UserName(object):
    yaml.warnings({'YAMLLoadWarning': False})

    def __init__(self, loop_num, prefix_name, path_=None):
        """
        :param loop_num: 迴圈次數
        :param prefix_name: 字首名稱,如傳"Knight",就生成Knight1,Knight2...
        :param path_: 配置檔案路徑,可以不傳,不傳預設在工程目錄下生成username.yml檔案
        
""" self.loop_num = loop_num self.prefix_name = prefix_name self.path = None if self.path is None: self.path = os.getcwd() + '\\username.yml' else: self.path = path_ def read_yml(self): with io.open(self.path, 'r', encoding="
utf-8") as rf: yml_data = yaml.load(rf) return yml_data.get('num') def write_yml(self, num=0): data = {'num': num} with io.open(self.path, 'w', encoding="utf-8") as wf: yaml.dump(data, wf) def add_user_name(self): """原有基礎上新增使用者名稱稱"""
start_value = self.read_yml() num = start_value name_list = [] for i in range(start_value, self.loop_num + start_value): print(f"{self.prefix_name}{i}") num += 1 name_list.append(f"{self.prefix_name}{i}") self.write_yml(num) return name_list def create_user_name(self): """建立使用者名稱稱""" self.write_yml() start_value = self.read_yml() num = start_value name_list = [] for i in range(start_value, self.loop_num + start_value): print(f"{self.prefix_name}{i}") num += 1 name_list.append(f"{self.prefix_name}{i}") self.write_yml(num) return name_list def run(self): if os.path.isfile(self.path): self.add_user_name() else: self.create_user_name() if __name__ == '__main__': name = UserName(3, "Knight") name.run()

執行效果如圖:每次會自動加1