22----常用模块介绍

一 time模块

import time
# 时间分为三种方式
# 1 时间戳:从1970年至当前时间的秒数
# 作用:计算时间间隔
res = time.time()
print(res)

# 2 格式化输出时间
# 作用:主要用来展示时间
# Y-年份 m-月 d-日  H- 小时 M-分钟 S-秒  p-AM/PM
res = time.strftime('%Y-%m-%d %H:%M:%S %p')
print(res)
# 简写:用X代表时分秒
res = time.strftime('%Y-%m-%d %X')
print(res)

# 3 结构化输出时间
# 讲具体的年月日时分秒等全部输出
res = time.localtime()
print(res)
# 输入参数的时候,会打印以1970年为准所对应的时间
res = time.localtime(33333)
print(res)
# 获取当前年份
print(res.tm_year)
# 获取今年过了几天
print(res.tm_yday)
# 获取当前是本周的第几天
print(res.tm_wday)

# 三种时间格式的相互转换
# Ⅰ 时间戳----结构化时间---格式化时间
# 时间戳----结构化时间
import time
# 时间戳
time1 = time.time()
# 将时间戳转为结构化时间
res = time.localtime(time1)
print(res)

# 结构化时间----格式化时间
# 获取结构化时间
res = time.localtime()
# 讲结构化时间转为格式化时间
time1 = time.strftime('%Y-%m-%d %X',res)
print(time1)

# Ⅱ 格式化时间---结构化时间----时间戳
# 格式化时间---结构化时间
# 获取格式化时间
res = time.strftime('%Y-%m-%d %X',res)
print(res)
# 格式化时间转成结构化时间
time1 = time.strptime(res,'%Y-%m-%d %X')
print(time1)
# 结构化时间转成时间戳
# 获取结构化时间
res = time.localtime()
time1 = time.mktime(res)
print(time1)

# 了解:世界标准时间  中国本地时间
import time
print(time.gmtime())
print(time.localtime())
# 显示格式化的时间 Mon Mar 30 15:11:11 2020
print(time.asctime())

二 datetime模块

pythonimport datetime
# 格式化输出时间
print(datetime.datetime.now())
# 计算一个星期后的时间
print(datetime.datetime.now()+datetime.timedelta(weeks=1))
# 计算一天星期后的时间
print(datetime.datetime.now()+datetime.timedelta(days=1))

三 random模块

import random
# 随机获取0-1之间的浮点数
print(random.random())

# 随机获取大于等于1 小于等于6之间的整形数字
print(random.randint(1,6))

# 随机获取大于等于1 小于6之间的整形数字
print(random.randrange(1,6))

# 随机获得参数中的一个数据
print(random.choice((111,'aaa',456,[1234,'qq'])))

# 指定元素个数自由组合,随机输出,当指定元素个数为1时,与choice作用相同
print(random.sample([111, 'aaa', 'ccc','ddd'],1))
print(random.sample([1,3,5,7,89,],3))

# shuffle 打乱原列表的顺序
list1 = [1,2,3,5]
random.shuffle(list1)
print(list1)



四 os模块

import os

# 获取某一个文件夹下的所有子文件夹名称以及文件名称
print(os.listdir(r'E:\pycharm\代码\pycharm-oldboy\tank作业讲解'))
# . 代表当前文件所在的文件夹 ..代表.的上一层
print(os.listdir('..'))

# os.remove()  删除一个文件
# os.rename("oldname","newname")  重命名文件/目录

# 将字符串转化成命令在服务器上运行
os.system(r'C:\Users\GuiGui\Desktop\hello.py')
os.system('dir')

# 生成环境变量,添加环境变量,key value必须均为字符串
print(os.environ)
res = os.environ['我是新的环境变量'] =r'C:\Users\GuiGui\Desktop\hello.py'
print(os.environ)

# 获取当前文件的文件夹
print(os.path.dirname(__file__))
# 获取当前文件的文件名字
print(os.path.basename(__file__))

# 获取文件大小
res = os.path.getsize(r'E:\pycharm\代码\pycharm-oldboy\PRACTICE')
print(res)

# 判断文件是否是文件
print(os.path.isfile('整理知识'))
print(os.path.isfile('03'))
print(os.path.isfile('03-os模块.py'))


# 对文件路径进行拼接
path = os.path.join('a','b')
print(path)
# 如果路径包括根目录符号就从根目录开始拼接
path = os.path.join('a','c:\\','b')
print(path)


# 查找文件所在的文件夹推荐使用的方式
print(os.path.dirname(__file__))

# 在python3.5之后,推出了一个新的模块pathlib
from pathlib import Path

res = Path(__file__).parent.parent
print(res)


res=Path('/a/b/c') / 'd/e.txt'
print(res)

print(res.resolve())

五 小案例

# 应用:随机生成验证码
# 获取随机的26个大写英文字母,根据ASC码表
al_A = chr(random.randint(65,90))
# 获取随机的26个小写英文字母,根据ASC码表
al_a = chr(random.randint(97,122))
# 获取随机数字
num = random.randint(0,9)
# 生成随机验证码
res = ''
for i in range(6):
    res += random.choice([al_a,al_A,str(num)])
print(res)

# 封装成函数的格式
def func(n=6):
    # 获取随机的26个大写英文字母,根据ASC码表
    al_A = chr(random.randint(65,90))
    # 获取随机的26个小写英文字母,根据ASC码表
    al_a = chr(random.randint(97,122))
    # 获取随机数字
    num = random.randint(0,9)
    # 生成随机验证码
    res = ''
    for i in range(n):
        res += random.choice([al_a,al_A,str(num)])
    return res
# 复制功能---新方法
import sys
print(sys.argv)
src = sys.argv[1]
tag = sys.argv[2]
with open(src,'rb') as f,open(tag,'wb') as f1:
    res = f.read()
    f1.write(res)
# 下载进度条
import time


def progress(percent):
    if percent > 1:
        percent = 1
    res = int(50 * percent) * '#'
    print('\r[%-50s] %d%%' % (res, int(100 * percent)), end='')

recv_size=0
total_size=1025011

while recv_size < total_size:
    time.sleep(0.01) # 下载了1024个字节的数据

    recv_size+=1024 # recv_size=2048

    # 打印进度条
    # print(recv_size)
    percent = recv_size / total_size  # 1024 / 333333
    progress(percent)

六 更多模块方法请参照

https://www.cnblogs.com/linhaifeng/articles/6384466.html

猜你喜欢

转载自www.cnblogs.com/Kathrine/p/12600649.html