您的位置:首页 > 编程语言 > Python开发

Python常用模块

2019-05-31 20:18 78 查看

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,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(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语句执行时间的,这样就能测试索引的效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: