——常用模块1 time与datetime模块 random模块 os sys
视频笔记
目录
一 time与datetime模块
-
-
- 1.1 time模块
- 1.2 datetime
-
二 random模块
三 os模块
四 sys模块
回到顶部
一 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)
res1=time。localtime()
print(res1.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)) #时间替换
回到顶部
二 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'))#将多个路径组合后返回,第一个绝对路径(/)之前的参数将被忽略
os.path.getsize(file)返回path大小
了解:
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规范化的绝对路径 返回地址的斜杠会为“\dwad\dwd\”
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

浙公网安备 33010602011771号