一 常用模块
定义:可以实现某种功能的.py结尾的python文件,文件名为test.py,则模块名为test
导入方法
import 模块名
import 模块名1,模块名2
from 模块名 import * 不建议使用这种方法,容易引起模块中的方法被程序中的同名方法覆盖的错误
from 模块名 import 方法名1,方法名2
from 模块名 import 方法名 as 别名
import本质
import 包名 执行包中的__init__.py
import 模块名 将模块中所有代码赋值给以这个模块名命名的变量
from 模块名 import 方法名 把指定方法的代码赋值给以这个方法名命名的变量
导入优化
使用from import方式导入模块方法,加快程序运行速度
模块分类
标准模块
time模块
'''输出当前时间的时间戳'''
print(time.time())
'''程序停止几秒'''
# time.sleep(2)
'''时间戳转换为时间元组形式,以UTC时区为标准'''
print(time.gmtime())
'''时间戳转换为时间元组形式,以本地时区为标准'''
print(time.localtime())
x =time.localtime()
'''提取时间元组中的元素'''
print(x.tm_mday)
'''时间元组转换成时间戳'''
print(time.mktime(time.localtime()))
'''时间元组转换成格式化的时间'''
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
'''格式化时间转换成指定格式的时间元组'''
print(time.strptime(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()),"%Y-%m-%d %H:%M:%S"))
'''时间元组转换成时间字符串'''
print(time.asctime(time.localtime()))
'''时间戳转换成时间字符串'''
print(time.ctime(time.time()))
datetime模块
'''获取当前时间'''
print(datetime.datetime.now())
'''获取当前日期几天前或几天后的时间,负数代表几天前,正数代表几天后'''
print(datetime.datetime.now()+datetime.timedelta(-1))
random模块
'''获取随机浮点数,范围0-1'''
print(random.random())
'''获取随机浮点数,范围自定义'''
print(random.uniform(3,6))
'''获取随机整数,范围自定义'''
print(random.randint(3,8))
'''获取随机整数,范围自定义,范围左闭右开'''
print(random.randrange(3,8))
'''在传入序列中获取一位随机值'''
print(random.choice([2,5,"a",9]))
'''在传入序列中取出指定位数的值,以列表形式返回'''
print(random.sample([2,5,"a",9],2))
'''将传入序列的顺序打乱'''
list =[2,5,"a",9]
random.shuffle(list)
print(list)
import random
checkcode =""
for i in range(4):
current = random.randrange(0,4)
if current == i:
tmp = chr(random.randint(65,90))
else:
tmp = random.randint(0,9)
checkcode += str(tmp)
print(checkcode)
以上代码实现输出四位验证码的功能
os模块
'''获取当前的操作目录'''
print(os.getcwd())
'''切换工作目录'''
os.chdir("/root")
'''递归的创建目录'''
# os.makedirs("/root/a/b/c/")
'''递归删除空目录'''
# os.removedirs("/root/a/b/c/")
'''创建目录,无法递归创建'''
# os.mkdir("/root/a/")
'''删除指定目录,无法递归删除'''
# os.rmdir("/root/a/")
'''列出指定目录下的所有内容'''
print(os.listdir("/root/"))
'''重命名文件或目录'''
# os.rename("/root/test.txt","/root/3-30.txt")
'''查看文件属性'''
print(os.stat("/root/3-30.txt"))
'''输出当前系统的路径分隔符'''
print(os.sep)
'''输出当前系统的换行符'''
print(os.linesep)
'''输出当前系统的文件路径分隔符'''
print(os.pathsep)
'''输出当前系统类型'''
print(os.name)
'''执行当前系统的操作命令,不保存结果'''
os.system("ls")
'''执行当前系统的操作命令,结果保存在内存中,使用read方法获取'''
print(os.popen("ls").read())
'''输出系统环境变量'''
print(os.environ)
'''输出文件绝对路径'''
print(os.path.abspath("3-30.txt"))
'''分隔文件目录路径和文件名'''
print(os.path.split("/root/3-30.txt"))
'''输出文件路径中的目录部分'''
print(os.path.dirname("/usr/local/bin/a.txt"))
'''输出文件路径中的文件名部分'''
print(os.path.basename("/usr/local.bin/a.txt"))
'''判断路径是否存在'''
print(os.path.exists("/usr/local/a.txt"))
'''判断输入的是否为绝对路径'''
print(os.path.isabs("3-20.txt"))
'''判断输入的是否为一个存在的文件'''
print(os.path.isfile("3-20.txt"))
'''判断输入的是否为一个存在的目录'''
print(os.path.isdir("/usr/"))
'''将输入的多个路径组合返回,最后一个绝对路径前的内容会被忽略'''
print(os.path.join("a","/usr","local","a.txt"))
'''输出文件或目录最后的存取时间'''
print(os.path.getatime(__file__))
'''输出文件或目录最后的修改时间'''
print(os.path.getmtime(__file__))
sys模块
sys.argv
sys.exit() 退出程序,正常推出为exit(0)
sys.version 获取python解释器版本信息
sys.maxint 最大Int值
sys.path 返回python环境变量值
sys.platform 返回操作系统平台名称
sys.stdout.write()
val = sys.stdin.readline()[:-1]
shutil模块
shutil.copyfileobj() 传入两个文件对象,复制源文件内容到目标文件
shutil.copyfile() 输入源文件名,目标文件名进行复制
shutil.copymode() 将源文件权限模式复制给目标文件
shutil.copystat() 将源文件属性复制给目标文件
shutil.copy() 复制文件和权限
shutil.copy2() 复制文件和权限和状态信息
shutil.copytree() 递归的复制文件
shutil.rmtree() 递归删除目录
shutil.move() 递归移动文件
shutil.make_archive("压缩包名或路径","压缩类型","要压缩文件的路径")
shelve模块
通过key-value将内存数据通过文件持久化
import shelve
d =shelve.open("shelve_test")
name =[1,2,3,4]
info = {"name":"lf","age":23}
d["name"] =name 列表持久化
d["info"] =info 字典持久化
d.close()
print(d.get("info")) 取出持久化文件内容
xml模块
import xml.etree.ElementTree as ET
tree = ET.parse("xmltest.xml")
root = tree.getroot()
print(root.tag)
# 遍历xml文档
for child in root:
print(child.tag, child.attrib) 打印xml标签,属性
for i in child:
print(i.tag, i.text) 打印标签,文本
# 只遍历year 节点
for node in root.iter('year'):
print(node.tag, node.text)
#修改
for node in root.iter('year'):
new_year = int(node.text) +1
node.text =str(new_year)
node.set("updated_by","Alex")
tree.write("xmltest.xml")
#删除
for country in root.findall('country'):
rank =int(country.find('rank').text)
if rank > 50:
root.remove(country)
tree.write("output.xml")
创建
import xml.etree.ElementTree as ET