根据中文姓名匹配出拼音,密码,邮箱

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author:VVIC
@file: vvic_tool.py
@time: 2019/09/05
@Description:
@version: 1.0
"""
import re
import string
from random import choice, shuffle
import pypinyin
import logging
import argparse


class CreateUser(object):
    def __init__(self, cn_name):
        self.cn_name = cn_name
        logging.basicConfig(
            level=logging.DEBUG,
            format="%(asctime)s %(levelname)s %(message)s",
            datefmt="%a, %Y-%m-%d %H:%M:%S",
            filemode="a",
#            filename="D:\\onedrive\\workspace\\software\\vvic_tools.log",
            filename="D:\\vvic_tools.log",
        )
        password1 = (
                [choice(string.ascii_lowercase) for _ in range(5)]
                + [choice(string.ascii_uppercase) for _ in range(5)]
                + [choice(string.digits) for _ in range(5)]
                + [choice("@#$%^&*()_+-=") for _ in range(1)]
        )
        shuffle(password1)
        password1 = "".join(password1)

        password2 = "".join(
            [choice(string.ascii_letters + string.digits) for _ in range(16)]
        )
        user_info = (
                cn_name + " " + self.hp2 + " " + self.hp + " " + password1 + " " + password2
        )
        logging.info(user_info + " " + self.hp + "@vvic.com")
        print(user_info + " " + self.hp + "@vvic.com")

    @property
    def hp(self):
        # 不带声调的(style=pypinyin.NORMAL)
        pinyin_name = ""
        for i in pypinyin.pinyin(self.format_cn_name, style=pypinyin.NORMAL):
            pinyin_name += "".join(i)
        return pinyin_name

    @property
    def hp2(self):
        # 带声调的(默认)
        pinyin_name = ""
        for i in pypinyin.pinyin(self.format_cn_name):
            pinyin_name = pinyin_name + "".join(i) + " "
        return pinyin_name
    
    @property
    def format_cn_name(self):
        cn_name = self.cn_name
        if len(cn_name) > 4:
            regex_cn = re.compile("[\u4e00-\u9fa5]*")
            cn_name = regex_cn.match(cn_name).group()
        #生僻字或英文与中文对应
        cn_name = re.sub(r"曾", "zeng", cn_name)
        cn_name = re.sub(r"Leon", "测试", cn_name)
        cn_name = re.sub(r"leon", "测试", cn_name)
        cn_name = re.sub(r"佛", "fo", cn_name)
        
        return cn_name


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="create user info")
    parser.add_argument("-n", "--name", type=str, help="i don not know")
    args = parser.parse_args()
    print("1t2ntG2H283gin80")

    if args.name:
        cu = CreateUser(args.name)

执行

python vvic_tool.py -n 张三

执行结果

张三 zhang san  zhangsan pD2V9g42uqBS7Qy% ftptGSyOkzCMDU4z zhangsan@vvic.com

注:

  1. 需要更改日志目录
  2. 需要安装pypinyin模块
pip install pypinyin

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值