Python-模块
一、模块分类
标准库
Python 提供的模块,可以直接调用
开源模块
第三方模块,使用前需要先
pip
安装
自定义模块
自己开发的模块
模块使用
#1.导入整个模块
import os
import os,sys
#2.为模块起别名
import sys as s
#3.导入模块中的部分内容
from module import fun1,fun2
from os import getpwd()
第三方模块安装
#使用前需安装依赖
yum install python3-devel
#安装
pip3 install 模块名
#卸载
pip3 uninstall 模块名
#查看已安装的模块
pip3 list
#查看模块信息
pip3 show 模块名
二、常用标准库
1、os
#获取当前路径
print(os.getcwd())
#改变当前目录
os.chdir("/tmp")
#获取文件的状态信息,结果为tuple
os.stat(path)
os.stat(path).st_....
#获取文件的大小
os.path.getsize(path)
#得到文件的绝对路径
print(os.path.abspath(__file__))
#获取路径中目录部分
print(os.path.dirname("/etc/fstab"))
#获取路径中文件名部分
print(os.path.basename("/etc/fstab"))
#把dirname和basename合并
print(os.path.join("/etc","fstab"))
#判断文件是否存在
os.path.exists(path)
#判断是否为文件
os.path.isfile(path)
#判断是否为目录
os.path.isdir(path)
#重命名
os.rename("oldName","newName")
#删除文件
os.remove(path)
#创建目录
os.mkdir("/tmp/a")
os.makedirs("/tmp/a/b/c")
#删除目录
os.rmdir("/tmp/a")
os.removedirs("/tmp/a/b/c")
执行shell
os.popen("touch /tmp/1.txt")
os.system("touch /tmp/2.txt")
#查看命令执行后的内容
print(os.popen("cat /etc/fstab").read())
2、sys
# sys.argv[0]等同于shell里的$0, sys.argv[1]等同于shell里的$1,以此类推
sys.argv[n]
3.time
#获取当前时间,结果为tuple
print(time.localtime())
# 打印当前时间(格式化字符串)
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.strftime("%F %T"))
# 打印当前时间(常规字符串格式)
print(time.asctime())
# 打印当前时间,离1970年1月1号0点的秒数(时间戳)
print(time.time())
时间转换
# 格式化字符串转时间元组
print(time.strptime("2018-01-01 10:30:25","%Y-%m-%d %H:%M:%S"))
#时间元组转时间戳
print(time.mktime(time.localtime()))
#时间戳转时间元组
print(time.localtime(1514774430))
4.random
import random
# 0-1之间的浮点数随机
print(random.random())
# 1-3间的浮点数随机
print(random.uniform(1,3))
# 1-3整数随机
print(random.randint(1,3))
# 1-2整数随机
print(random.randrange(1,3))
# 随机1,3,5,7这四个数
print(random.randrange(1,9,2))
# 字符串里随机一位,包含中间的逗号
print(random.choice("hello,world"))
# 从前面的字符串中随机取3位,返回结果为列表
print(random.sample("hello,world", 3))
## 列表顺序打乱
list = [1, 2, 3, 4, 5]
random.shuffle(list)
print(list)
5、re
regex
,正则表达式
常用函数
import re
#开头匹配,从开始位置匹配
re.match()
#全文匹配,只返回第一个匹配项
re.search()
#全文匹配,返回所有匹配项目,返回结果为列表
re.findall()
#分隔
re.split()
#匹配并替换
re.sub()
实例
#re.split()
str2 = "a b c d e f "
print(re.split(" ",str2))
#结果:['a', 'b', 'c', 'd', 'e', 'f', '']
#re.sub()
str3 ="a b a c a"
print(re.sub("a","A",str3))
#结果:A b A c A
print(re.sub("a","A",str3,2))
#结果:A b A c a
三、第三方模块
psutil
https://www.liaoxuefeng.com/wiki/1016959663602400/1183565811281984
# cpu
#查看cpu状态,类型为tuple
print(psutil.cpu_times())
#查看cpu核数,类型为int
print(psutil.cpu_count())
# memory
#查看内存状态,类型为tuple
print(psutil.virtual_memory())
#查看swap状态,类型为tuple
print(psutil.swap_memory())
查看磁盘信息
for i in psutil.disk_partitions():
if i.fstype == '':
continue
info = psutil.disk_usage(i.device)
print("{}\t {}\t {}GB\t {}GB\t {}GB\t {}%".format(
i.device,
i.mountpoint,
format(info.total/1024/1024/1024,".2f"),
format(info.used/1024/1024/1024,".2f"),
format(info.free/1024/1024/1024,".2f"),
format(info.used/info.total*100,".2f"),
))
paramiko
连接服务器
import paramiko
#创建新的连接实例
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
#设置远程服务器信息
ssh.connect(hostname="10.1.1.67", port=22, username="root", password="xxh")
# 执行命令
stdin,stdout,stderr = ssh.exec_command("cat /tmp/123.txt")
#标准输出赋值
print(stdout.read().decode())
#错误输出赋值
print(stderr.read().decode())
#关闭此连接实例
ssh.close()
文件上传下载
import paramiko
trans = paramiko.Transport(("10.1.1.67",22))
trans.connect(username="root",password="xxh")
sftp = paramiko.SFTPClient.from_transport(trans)
# 下载文件到本地
sftp.get("/tmp/2.txt","./2.txt")
# 上传文件
sftp.put("./1.txt","/tmp/1.txt")
trans.close()