使用字符串模板,发送创建用户信息

目标:

  1.定义函数,实现根据输入数字,生成相应位数随机密码的功能

  2.定义字符串模板,生成用户和密码信息,前缀username和password不变,只有后面对应的变量变化

  3.定义函数,实现根据输入的用户以及1中产生的随机密码,创建用户并根据2中定义的模板发送用户信息到指定用户dthan@xkops.com

 

1.编写生成随机密码的函数

[xkops@localhost python]$ cat randompass.py

#!/usr/bin/env python
#coding:utf8
'''生成指定位数的随机密码'''

import string,random

#定义密码产生的规则:字母、数字、特殊字符.
all_chs = string.letters + string.digits + '*#@!$'

def gen_pass(num):
    '''实现按照用户输入的数字,产生相应位数的随机密码的功能'''
    pwd = []
    for i in xrange(num):
        ch = random.choice(all_chs)
        pwd.append(ch)
    return ''.join(pwd)

if __name__ == "__main__":
    num = int(raw_input("Please input number: "))
    print gen_pass(num)

 

2.字符串模板的使用

定义字符串内容模板的方式如下

>>> import string
>>> contents = '''username: ${user}
... password: {$passwd}'''
>>> t = string.Template(contents)
>>> t.substitute(user='test', passwd='123456')
'username: test\npassword: {123456}'

 

3.定义创建用户设置密码并发送邮件的函数

[xkops@localhost python]$ cat adduser_mail.py

#!/usr/bin/env python
#coding:utf8

import string,subprocess,randompass,sys

#定义模板内容
contents = '''username: ${user}
password: ${passwd}'''

def adduser(uname,pwd):
    t = string.Template(contents)
    email_content = t.substitute(user=uname, passwd=pwd)
    subprocess.call("useradd '%s'" % uname, shell=True)
    subprocess.call("echo '%s'|passwd --stdin '%s'" %(pwd,uname), shell=True)
    subprocess.call("echo '%s'|mail -s 'User Info' dthan@xkops.com" % email_content,shell=True)


if __name__ == "__main__":
    pwd = randompass.gen_pass(8)
    adduser(sys.argv[1], pwd)

*提示:邮箱换成自己的

4.测试创建用户设置密码,并将用户和密码信息按照字符串模板定义的规则发送给指定用户dthan@xkops.com。

[root@localhost python]# python adduser_mail.py test
更改用户 test 的密码 。
passwd:所有的身份验证令牌已经成功更新。

 

5.打开邮箱,查看是否收到邮件以及邮件内容。

转载于:https://www.cnblogs.com/xkops/p/6234554.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值