
import string import random import time import uuid class GenUtil: """ 生成测试数据。 """ __instance = None # 实例 def __new__(cls, *args, **kwargs): ''' 单实例 :param args: :param kwargs: :return: ''' if not cls.__instance: cls.__instance = super(GenUtil, cls).__new__(cls, *args) return cls.__instance def gen_phones(self, count = 1): ''' 生成手机号 1[3,4,5,7,8][1~9] :param count: 生成数量 :return:list ''' try: list = [] for i in range(count): list.append( '1' + ''.join(random.choice("34578")) + ''.join(random.choice( "123456789")) + ''.join( random.sample( string.digits, 9))) if count == 1: return list[0] else: return list except Exception as e: print( "生成手机号出错!----" + str(e)) def gen_digits(self, length = 10, count = 1): ''' 生成正整数 :param length:正整数的位数 :param count:生成数量 :return:list ''' try: list = [] if length <= 10: for i in range(count): list.append(''.join(random.sample(string.digits, length))) elif length > 10: for i in range(count): list.append(''.join([random.choice(string.digits) for _ in range(length)])) if count == 1: return list[0] else: return list except Exception as e: print( "生成正整数出错!----" + str(e)) def gen_chinese_name(self, count = 1): ''' 生成中文+时间(年月日时分秒) :param count:生成姓名的个数 :return: ''' try: list = [] for i in range(count): list.append('测试' + ''.join(time.strftime('%Y%m%d%H%M%S', time.localtime()))) if count == 1: return list[0] else: return list except Exception as e: print( "生成中文+4位随机数出错!----" + str(e)) def gen_characters(self, length = 10, count = 1): ''' 生成随机字符(字母+数字) :param length:单个字符串的长度 :param count:生成字符串的个数 :return: ''' try: chars = string.ascii_letters + string.digits list = [] if length <= 62: for i in range(count): list.append( ''.join(random.sample(chars, length))) if count == 1: return list[0] else: return list else: for i in range(count): list.append(''.join([random.choice(chars) for i in range(length)])) if count == 1: return list[0] else: return list except Exception as e: print( "生成随机字符(字母+数字)出错!----" + str(e)) def gen_uuid(self, id): ''' 生成uuid ''' name = 'test' namespace = uuid.NAMESPACE_URL if id == 1: return str(uuid.uuid1()).replace('-', '') if id == 3: return uuid.uuid3(namespace, name) if id == 4: return str(uuid.uuid4()).replace('-', '') if id == 5: return uuid.uuid5(namespace, name)