python 7 模块
yagmail模块
邮件发送
import yagmail
#连接邮箱服务器
yag = yagmail.SMTP(user=‘18618250232@163.com’, password=‘abc123’, host=‘smtp.163.com’)
#发送邮件
yag.send(to=[‘18618250232@163.com’,‘lizhao_dc@126.com’],subject=‘测试主题’, contents=[‘这是测试邮件的内容’,r’C:\Users\Administrator.USER-20190512NQ\Desktop\docker.ppt’])
#断开连接
yag.close()
random 模块
import random
print(random.random()) #(0,1)----float 大于0且小于1之间的小数
print(random.randint(1,3)) #[1,3] 大于等于1且小于等于3之间的整数
print(random.randrange(1,3)) #[1,3) 大于等于1且小于3之间的整数
print(random.choice([1,‘23’,[4,5]])) #1或者23或者[4,5]
print(random.uniform(1,3)) #取任意范围的浮点型 大于1小于3的小数,如1.927109612082716
ord()函数主要用来返回对应字符的ascii码,
chr()主要用来表示ascii码对应的字符他的输入时数字
import random
def v_code(): # 验证码一般用循环 数字和字母相平的验证码
res="" # 验证码是字符串 首先有个初始值
for i in range(5): #5表示验证码5个随机数
num = random.randint(0,9) # 取到的数字
alf = chr(random.randint(65,90)) #chr chr()函数是输入一个整数【0,255】返回其对应的ascii符号
s = str( random.choice([num, alf]) ) # 做字符的转换
# res += random.choice([num, alf]) # 让字母和数字随机拼接起来,choice在s1和s2里面随机选择一个。
res +=s # 这是上面步骤的简写
return res # 返回的是字符串平接的结果
print(v_code()) # 调用函数
os模块 文件路径模块
import os
print(os.getcwd()) #获取当前工作目录,即当前python脚本工作的目录路径
os.chdir(‘test01’) #改变当前脚本工作目录;相当于shell下cd
print(os.getcwd())
os.chdir(’…’) #获取当前目录的父目录字符串名:(’…’)
print(os.getcwd())
#os.makedirs(‘dirname1/dirname2’) #可生成多层递归目录
#os.removedirs(‘dirname1/dirname2’) # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
time模块
import time
time.sleep() 睡觉
time.time() 获取当前时间戳,返回一个以秒为单位的浮点数
表示时间的三种方式:
1.时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
2.格式化的时间字符串(Format String): 字符串形式,给人看的
3.结构化的时间struct_time):struct_time元组共有九个元素九个元素是(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)元组形式,是做计算用的。
import time
print(time.time()) #时间戳:1545276241.5708632
print(time.localtime()) #本地时区的struct_time
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 格式化的时间字符串:‘2018-12-20 11:30:50’
print(time.strftime("%Y-%m-%d %X")) # 格式化的时间字符串:‘2018-12-20 11:30:50’ X:表示小时分钟秒
datetime 时间加减模块
import datetime
print(datetime.datetime.now()) # 当前的时间
datetime用法
print(datetime.datetime.now()+datetime.timedelta(days=3)) # 取3天后的时间
print(datetime.datetime.now()+datetime.timedelta(days=-3)) # 取3天前的时间
print(datetime.datetime.now()+datetime.timedelta(hours=3)) # 取3小时后的时间
print(datetime.datetime.now()+datetime.timedelta(minutes=3)) # 取3分钟后的时间
print(datetime.datetime.now()+datetime.timedelta(seconds=3)) # 取3秒后的时间
paramiko模块
import paramiko
hostname = ‘192.168.254.13’
port = 22
username = ‘root’
password = ‘root’
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname,port=port,username=username,password=password)
while True:
cmd = input(’[root@localhost ~]#’).strip()
if cmd:
stdin, stdout, stderr = ssh.exec_command(cmd)
else:
continue
print(stdout.read().decode(‘utf-8’) + stderr.read().decode(‘utf-8’))
pymysql模块
db = pymysql.connect(host=“192.168.254.12”, user=“root”,
password=“root”, db=“testdb”, port=3306)
cur = db.cursor()
for i in range(1000):
cur.execute(‘insert into students values (%s, “name-%s”)’ % (i,i))
db.commit()
result = cur.fetchmany(4)
print(result)
for data in result:
print(data)
psuti模块
监控
import psutil
cpu = psutil.cpu_percent(1)
mem = psutil.virtual_memory()
disk = psutil.disk_usage(‘c:’)
def cpu():
pass
def mem():
pass
def disk():
pass
def sendmail():
pass
def main():
cpu()
mem()
if name == ‘main’:
main()
pexpect模块
自动交互式模块
import pexpect
ssh = pexpect.spawn(‘ssh 192.168.254.12’)
res = ssh.expect([‘password:’,’(yes/no)’,pexpect.EOF,pexpect.TIMEOUT],timeout=20)
print(res)
if res == 0:
ssh.sendline(‘root’)
ssh.expect(’#’)
ssh.sendline(‘echo 1 >> /root/q.txt’)
ssh.sendline(‘echo 2 >> /root/q.txt’)
ssh.sendline(‘echo 3 >> /root/q.txt’)
ssh.sendline(‘echo 4 >> /root/q.txt’)
elif res == 1:
ssh.sendline(‘yes’)
ssh.expect(‘password:’)
ssh.sendline(‘root’)
ssh.expect(’#’)
ssh.sendline(‘ip a’)
elif res == 2:
print(‘error’)
else:
print(‘time out’)
ssh.interact()
ConfigParser模块
ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。
section 下面为类似于key-value 的配置内容。
import configparser
config = configparser.ConfigParser()
config.read(“mariadb.repo”, encoding=“utf-8”)
print(config.sections())
config.set(‘mysql’,‘url’,‘https://www.baidu.com’)
config.write(open(“mariadb.repo”, “w”))
print(config.options(‘mysql’))
print(config.get(‘mysql’,‘url’))
print(config.items(‘mysql’))
config.set(‘mysql’,‘url’, ‘https://www.taobao.com’)
config.write(open(“mariadb.repo”, “w”))
res = config.has_section(‘aaa’)
res = config.has_option(‘mysql’,‘url’)
print(res)
config.add_section(‘school’)
config.write(open(“mariadb.repo”, “w”))
config.remove_section(‘mysql’)
config.write(open(“mariadb.repo”, “w”))
config.remove_option(‘mysql’,‘name’)
config.write(open(‘mariadb.repo’,‘w’))
configparser, os.system, pexpect
浙公网安备 33010602011771号