一些常用的模块

一 time与datetime模块

  1.1 time模块

import time

    优先掌握

#时间戳timestamp:从1970年到现在经过的秒数.作用:用于时间间隔的计算
print(time.time())

#按照某种格式显示的时间Format String:2020-03-30 11:11:11 AM.作用:用于展示时间
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))

#结构化的时间,作用:用于单独获取时间的某一部分。结构化的时间(struct_time)元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
res = print(time.localtime())
print(res)
print(res.tm_year)

#睡眠(暂停)
print(time.sleep(3))

    需要掌握

#时间格式的转换

# struct_time->时间戳
s_time = time.localtime()
print(time.mktime(s_time))# mktime(t) : 将一个struct_time转化为时间戳。

# 时间戳->struct_time
tp_time=time.time()
print(time.localtime(tp_time))

    部分掌握

#strftime转化为格式化的时间字符串
s_time=time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))

#把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
print(time.strptime('2020-03-30 16:16:38','%Y-%m-%d %H:%M:%S'))

# !!!真正需要掌握的只有一条:format string<------>timestamp
# format string--->struct_time--->timestamp
struct_time=time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S')
timestamp=time.mktime(struct_time)
print(timestamp)

# format string<---struct_time<---timestamp
res=time.strftime('%Y-%m-%d %X',time.localtime())
print(res)

    补充:世界标准时间和本地时间

print(time.localtime())
print(time.gmtime()) # 世界标准时间,了解

    了解

print(time.asctime())
#把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
#None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

  1.2 datetime

import datetime
print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式
print(datetime.datetime.now()) # 当前时间
print(datetime.datetime.now() + datetime.timedelta(days=3)) #当前时间加3天
print(datetime.datetime.now() + datetime.timedelta(weeks=1))#当前时间加1星期
print(datetime.datetime.utcnow()) #时间标准时间

c_time  = datetime.datetime.now()
print(c_time.replace(minute=3,hour=2)) #时间替换
datetime

 

二 random模块

import random

print(random.random())#(0,1)----float    大于0且小于1之间的小数
print(random.randint(1,3))# [1,3]    大于等于1且小于等于3之间的整数
print(random.randrange(1,3))# [1,3)    大于等于1且小于3之间的整数
print(random.choice([111,'aaa',[1,2]])) #在元素内随机选择一个
print(random.sample([111,'zz',[1,2]]),2) # 列表元素任意2个组合
print(random.uniform(1,3)) # 大于1小于3的小数,如1.927109612082716

item = [1, 3, 5, 7, 9]
random.shuffle(item)  # 打乱item的顺序,相当于"洗牌"
print(item)

  验证码的案例

import random
def make_code(size=4):
    res = ''
    for i in range(size):
        s1 = chr(random.randint(65,90))
        s2 = str(random.randint(0,9))
        res+=random.choice([s1,s2])
    return res
print(make_code(6))

三 os模块

print(os.listdir('.')# 获取某一个文件夹下所有的子文件以及子文件夹的名字
print(os.path.getsize('.'))#返回path的大小
os.remove()  #删除一个文件
os.rename("oldname","newname")  #重命名文件/目录
os.system(command)  #将字符串转换成命令在终端运行

print(os.environ)  #获取系统环境变量
os.environ['aaaaaaaaaa']='111'# 规定:key与value必须都为字符串
print(os.environ)

print(os.path.dirname(r'/a/b/c/d.txt'))#返回path的目录
print(os.path.basename(r'/a/b/c/d.txt'))#返回path最后的文件名
print(os.path.isfile(path))#如果path是一个存在的文件,返回True。否则返回False 可以用来判断是否为文件
print(os.path.isdir(path))#如果path是一个存在的目录,则返回True。否则返回False
print(os.path.join('a','/','b','c','d'))#将多个路径组合后返回,第一个绝对路径(/)之前的参数将被忽略
掌握
print(os.getcwd())#获取当前工作目录,即当前python脚本工作的目录路径
print(os.chdir("dirname")) #改变当前脚本工作目录;相当于shell下cd
os.makedirs('dirname1/dirname2')#可生成多层递归目录
os.removedirs('dirname1')#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    #生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.stat('path/filename')  #获取文件/目录信息
os.sep    #输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep    #输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep    #输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name    #输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.path.abspath(path)  #返回path规范化的绝对路径
os.path.split(path)  #将path分割成目录和文件名二元组返回
os.path.split(path)#的第二个元素
os.path.exists(path)  #如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)  #如果path是绝对路径,返回True
os.path.getatime(path)  #返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  #返回path所指向的文件或者目录的最后修改时间
了解

   os处理路径的几种方式

# 方式一:推荐用这种
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
print(BASE_DIR)

#方式二
BASE_DIR=os.path.normpath(os.path.join(
    __file__,
    '..',
    '..'
))
print(BASE_DIR)

#方式三# 在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())

四 sys模块

sys.argv           #命令行参数List,第一个元素是程序本身路径
sys.exit(n)        #退出程序,正常退出时exit(0)
sys.version        #获取Python解释程序的版本信息
sys.maxint         #最大的Int值
sys.path           #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       #返回操作系统平台名称

  打印进度条案例

import sys
import time
def progress(percent,width=50):
    if percent>1:
        percent=1
    show_str = ('[%%-%ds]'%width)%(int(percent*width)*'*')
    print('\r%s %s%%'%(show_str,int(percent*100)),end='')

data_size=10250
recv_size=0
while recv_size < data_size:
    time.sleep(0.1) #模拟数据的传输延迟
    recv_size+=1024 #每次收1024

    percent=recv_size/data_size #接收的比例
    progress(percent,width=70) #进度条的宽度70

猜你喜欢

转载自www.cnblogs.com/bk134/p/12599438.html