首页 > 编程语言 > 详细

Python常用模块

时间:2019-05-31 22:10:46      阅读:180      评论:0      收藏:0      [点我收藏+]

 

psutil模块:需先下载此模块

#py文件名字不要跟导入的模块重名  

#py文件是可以当做模块导入的  

import psutil #资源监控模块  

mem = psutil.virtual_memory() #监控内存  

print(men)  

cpu = psutil.cpu_percent(1) #监控cpu  

print(cpu)  

disk = psutil.disk_usage(rc:) #监控硬盘  

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,yagmail
def 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 cpu

def 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_dict

def 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_dict

def 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(rc:\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(rc:\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,rc:\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语句执行时间的,这样就能测试索引的效率。

Python常用模块

原文:https://www.cnblogs.com/shuaiyin/p/10925247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!