博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python常用模块
阅读量:6086 次
发布时间:2019-06-20

本文共 5896 字,大约阅读时间需要 19 分钟。

psutil模块:需先下载此模块

#py文件名字不要跟导入的模块重名  #py文件是可以当做模块导入的  import psutil #资源监控模块  mem = psutil.virtual_memory() #监控内存  print(men)  cpu = psutil.cpu_percent(1) #监控cpu  print(cpu)  disk = psutil.disk_usage(r'c:') #监控硬盘  print(disk)

yagmail模块:yagmail是发送邮件的,首先需要下载

import yagmail  yag = yagmail.SMTP(user='邮箱地址',password='邮箱授权密码',host='smtp.qq.com'(邮件格式))  yag.send(to='接收方邮箱地址',subject='主题',contents='内容')  yag.close()

psutil模块与yagmail应用实例

import psutil,yagmaildef sendmail(nr,nr1):    yag = yagmail.SMTP(user='shuaiyin1120@163.com',password='sin19941120',host='smtp.163.com')    yag.send(to='shuaiyin1120@163.com',subject=nr,contents=nr1)    yag.close()def jk_cpu():    cpu = psutil.cpu_percent(1)    return cpudef jk_disk():    disk = psutil.disk_usage('c:')    disk_total = disk[0]//1024//1024//1024    disk_used = disk[1]//1024//1024//1024    disk_free = disk[2]//1024//1024//1024    disk_dict = {        '硬盘总量':disk_total,        '硬盘使用量':disk_used,        '硬盘空余量':disk_free,    }    return disk_dictdef jk_mem():    mem = psutil.virtual_memory()    mem_total = mem[0]//1024//1024//1024    mem_percent = mem[2]    mem_used = mem[3]//1024//1024//1024    mem_free = mem[4]//1024//1024//1024    mem_dict = {        '内存总量':mem_total,        '内存使用率':mem_percent,        '内存使用量':mem_used,        '内存空余量':mem_free,    }    return mem_dictdef main():    cpu = jk_cpu()    disk = jk_disk()    mem = jk_mem()    msg ='''    cpu_percent:%s%%    disk_total:%sG    disk_used:%sG    disk_free:%sG    mem_total:%sG    mem_percent:%s%%    mem_used:%sG    mem_free:%sG    ''' % (cpu,disk.get('硬盘总量'),disk.get('硬盘使用量'),disk.get('硬盘空余量'),mem.get('内存总量'),mem.get('内存使用率'),mem.get('内存使用量'),mem.get('内存空余量'))    if cpu >1:        sendmail('您的cpu使用过高','使用了%s' % cpu)    elif disk.get('硬盘空余量') < 30:        sendmail('您的硬盘容量不足','剩余量为%s' % disk.get('硬盘空余量'))    elif mem.get('内存使用率') > 60:        sendmail('您的内存不足','剩余内存量为%s' % mem.get('内存空余量'))    else:        print('系统正常')if __name__ == '__main__':    main()
View Code

os模块:调用操作系统

import os  #利用python帮助我们调用windows系统命令或Linux命令  res = os.system('ipconfig') #查看一个命令的执行结果,返回值1是失败,0是成功  print(res)  #打印会出现乱码,解决方法,修改pycharm配File->Settings->Editor->File Encodings,把global encoding设置成gbk即可。

利用system展开思路,就是说布置很多命令,完后查看命令的执行结果。

cmds = ['service httpd restart','uname -r','update','ifconfig -a']  for cmd in cmds:      res = os.system(cmd)  if res == 0:  print('执行成功')  else:  print('执行失败')
View Code
import os    res = os.path.exists('此处输入文件的路径即可') #判断是否存在这个文件或目录,他会返回一个布尔形式的值
View Code

比如我要创建一个文件,但我不知道这个文件是否存在。

res = os.path.exists(r'c:\users\fengzi\desktop\a.txt')  if res:  print('文件已存在')  else:      os.system('type nul > c:\users\fengzi\desktop\a.txt')
View Code
import os    res = os.remove('此处输入文件的路径即可') #移除文件或目录
View Code
import os  HMOE = '/etc/yum.repo.d/'    #定义了环境变量res = os.path.join(HOME,'a.txt') #拼接路径
View Code
import os  res = os.rename(原文件名字,新文件名字) #重命名
View Code

paramiko模块:模拟ssh连接Linux主机

import paramiko #也是属于第三方模块,它是模拟ssh协议远程连接linux主机  ssh = paramiko.SSHClient() #声明一个变量  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #忽略你的策略,就是know_hosts这个文件  ssh.conect(hostname='192.168.254.70',port=22,username='root',password='root') #连接主机  while True:      stdin,stdout,stderr=ssh.exec_command(input('===>:').strip()) #执行命令  print(stdout.read().decode('gbk')+stderr.read().decode('gbk'))  import paramiko #通过paramiko模块上传文件  hostname = 'ip'  port = 22  username = 'root'  password = 'root'  t = paramiko.Transport(hostname,port)  t.connect(username='',password='')  sftp = paramiko.SFTPClient.from_transport(t)sftp.put(r'c:\users\fengzi\Desktop\Linux.xmind','/root/aaa.xmind') #你要复制的文件绝对路径,你要复制到Linux里的绝对路径  sftp.close() import paramiko #通过paramiko模块下载Linux文件  hostname = 'ip'  port = 22  username = 'root'  password = 'root'  t = paramiko.Ttansport(hostname,port)  t.connect(username='',password='')  sftp = paramiko.SFTPClient.from_transport(t)sftp.get(r'/root/test/yml',r'c:\users\Desktop\test.yml')   sftp.close()

socket模块:(基于ip地址和端口号收发消息的)

import socket       server = socket.socket()#测试端口是否启用       server.settimeout(1) #这是为了当你连接没有的ip时,他会等待时间非常长,为了加快结果的显示。       server.connect_ex((’ip’,端口号)) #去连接主机端口号
server = socket.socket()#tcp协议  server.settimeout(1)#设置超时时间  res = server.connect_ex((ip,int(port)))  # print(res)#res == 0代表端口号启用|res != 0代表端口号没启用  if res == 0:      print('%s---%s:ok' % (ip,port))  else:      print('%s---%s:不通' % (ip, port))

re模块(正则表达式) 

#.*?叫做非贪婪匹配,尽可能的少匹配  #.*叫做贪婪匹配,尽可能的多匹配  # a = 'fenif1212nfi129f21f'  # res = re.compile('(\d+)').findall(a)  # print(res)  hosts = ['1.1.1.1:90','2.2.2.2:8080','127.0.0.1:80','3.3.3.3:50','192.168.1.1:9090']  for host in hosts:      ip = re.compile('(.*?):(.*)').search(host).group(1)  port = re.compile('(.*?):(.*)').search(host).group(2)

config模块:装一个yum源用代码自动填充里面的内容

import configparser  config = confingparser.ConfigParser()  config.read('文件的绝对路径',encoding='gbk')  congif.add_section('mysql')  config.write(open('文件得绝对路径','w'))#保存  config.set('mysql','baseurl','http://www.mysql.com')#往mysql这个section里添加option和value  config.write(open('mariadb.repo','w'))#再保存  config.remove_option('mysql','baseurl')#删除option  config.has_option('mysql','baseurl')#查看section里有没有这个option,返回布尔形式config.remove_section('mysql')#删除section,如果此section里有option,也一并删除  res = config.values()#查看所有的section  for i in res:     print(i)  res = config.get('server','baseurl')#通过section和option取value      print(res)

pymsql模块:

#pip先安装#而后即可connect连接数据库db=pymsql.connect("ip",user="root",password="root",db="要测试的数据库名字",port="3306")cur=db.cursor()  这个叫游标,有以上这两步,就可以连接数据库,去操作数据库。for i in range(100000):              cur.execute("insert into test_table values (0,'name-%s','title=%s')" % (i,i))db.commit()result=cur.fetchall()cur.fetchall是查看所有数据,fetone是一条数据。#这个是插入10万条数据。show variables like ‘profiling’set profiling=1;  #这是临时性的,重启数据库就又关闭了。#profiling是查看你的sql语句执行时间的,这样就能测试索引的效率。

转载于:https://www.cnblogs.com/shuaiyin/p/10925247.html

你可能感兴趣的文章
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
多线程之线程池任务管理通用模板
查看>>
CSS3让长单词与URL地址自动换行——word-wrap属性
查看>>
CodeForces 580B Kefa and Company
查看>>
开发规范浅谈
查看>>
Spark Streaming揭秘 Day29 深入理解Spark2.x中的Structured Streaming
查看>>
鼠标增强软件StrokeIt使用方法
查看>>
本地连接linux虚拟机的方法
查看>>
某公司面试java试题之【二】,看看吧,说不定就是你将要做的题
查看>>
BABOK - 企业分析(Enterprise Analysis)概要
查看>>
Linux 配置vnc,开启linux远程桌面
查看>>
CentOS6.4关闭触控板
查看>>
React Native 极光推送填坑(ios)
查看>>
Terratest:一个用于自动化基础设施测试的开源Go库
查看>>