常用内置模块--timeossysrandomshutilpicklejson
Posted holy_pie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用内置模块--timeossysrandomshutilpicklejson相关的知识,希望对你有一定的参考价值。
一、time模块
Python中,通常有这几种方式来表示时间:
1.时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
2.格式化的时间字符串(Format String)
3.结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
import time # 一、三种格式: # 1. 时间戳(获取当前秒数) # 从1970年1月1日(计算机元年)到现在的秒数 time.time() # 2. 格式化的字符串时间 print(time.strftime(‘%Y-%m-%d %X‘)) print(time.strftime(‘%Y-%m-%d %H:%M:%S %p‘)) # 2018-08-09 19:57:45 PM # 3. 时间对象(结构化时间) t = time.localtime() # 当地时间 print(t) print(t.tm_min) print(t.tm_mday) t1 = time.gmtime() # 世界标准时间 # 二、时间转换 # 1. 时间戳 --> 结构化时间 print(time.localtime(111111112)) print(time.gmtime(111111112)) # 2. 结构化时间 --> 时间戳 print(time.mktime(time.localtime())) # 3. 结构化时间 --> 格式化字符串时间 print(time.strftime(‘%Y‘,time.localtime())) # 只取出年 2018 # 4. 格式化字符串时间 --> 结构化时间 print(time.strptime(‘2011-03-07‘,‘%Y-%m-%d‘)) # 5. 结构化时间 --> %a %b %d %H %M %S %Y print(time.asctime(time.localtime())) # Thu Aug 9 19:57:45 2018 # 5. 时间戳 --> %a %b %d %H %M %S %Y print(time.ctime(12122121)) # Thu May 21 15:15:21 1970 time
二、datetime模块
1、python实现的一个时间处理模块,time用起来不太方便, 所以就有了datetime
2、优点:datetime相比time,更灵活
3、timedelta表示时间差
两个时间差可以加减乘除
时间差和datetime 可以加减
# 单独获取某个年月日 d1 = datetime.datetime.now() print(d1) #2019-01-14 21:35:44.637357 print(d1.year) #2019 print(d1.hour) #21 # 设定时间点 d2 = datetime.datetime(2018, 10, 12, 10, 23, 21) print(d2) #2018-10-12 10:23:21 # 计算两个时间的差 print(d1 - d2) #3712 days, 9:01:57.637357 # 替换指定时间 print(d1.replace(year=2017)) #2017-01-14 21:35:44.637357 # 表示时间差 print(datetime.timedelta(days=5)) #5 days, 0:00:00 # 时间差与datetime.datetime相加 print(d1 + datetime.timedelta(days=5)) #2019-01-19 21:35:44.637357 print(d1 + datetime.timedelta(weeks=3)) #2019-02-04 21:35:44.637357
三、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([1,‘23‘,[4,5]]))#1或者23或者[4,5] print(random.sample([1,‘23‘,[4,5]],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(n): res=‘‘ for i in range(n): s1=chr(random.randint(65,90)) s2=str(random.randint(0,9)) res+=random.choice([s1,s2]) return res print(make_code(9))
os模块是与操作系统交互的一个接口
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: (‘.‘) os.pardir 获取当前目录的父目录字符串名:(‘..‘) os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录 os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname os.rmdir(‘dirname‘) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 os.rename("oldname","newname") 重命名文件/目录 os.stat(‘path/filename‘) 获取文件/目录信息 os.sep 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/" os.linesep 输出当前平台使用的行终止符,win下为" ",Linux下为" " os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为: os.name 输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘ os.system("bash command") 运行shell命令,直接显示 os.environ 获取系统环境变量 os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) 如果path是绝对路径,返回True os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 os.path.getsize(path) 返回path的大小
四、sys模块
该模块与系统相关,一般用于设计脚本程序
sys.argv 命令行参数List,第一个元素是程序本身路径,获取cmd输入的参数 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称
#=========知识储备========== #进度条的效果 [# ] [## ] [### ] [#### ] #指定宽度 print(‘[%-15s]‘ %‘#‘) print(‘[%-15s]‘ %‘##‘) print(‘[%-15s]‘ %‘###‘) print(‘[%-15s]‘ %‘####‘) #打印% print(‘%s%%‘ %(100)) #第二个%号代表取消第一个%的特殊意义 #可传参来控制宽度 print(‘[%%-%ds]‘ %50) #[%-50s] print((‘[%%-%ds]‘ %50) %‘#‘) print((‘[%%-%ds]‘ %50) %‘##‘) print((‘[%%-%ds]‘ %50) %‘###‘) #=========实现打印进度条函数========== import sys import time def progress(percent,width=50): if percent >= 1: percent=1 show_str=(‘[%%-%ds]‘ %width) %(int(width*percent)*‘#‘) print(‘ %s %d%%‘ %(show_str,int(100*percent)),file=sys.stdout,flush=True,end=‘‘) #=========应用========== data_size=1025 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 打印进度条
五、os模块
os模块是与操作系统交互的一个接口
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: (‘.‘) os.pardir 获取当前目录的父目录字符串名:(‘..‘) os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录 os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname os.rmdir(‘dirname‘) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 os.rename("oldname","newname") 重命名文件/目录 os.stat(‘path/filename‘) 获取文件/目录信息 os.sep 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/" os.linesep 输出当前平台使用的行终止符,win下为" ",Linux下为" " os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为: os.name 输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘ os.system("bash command") 运行shell命令,直接显示 os.environ 获取系统环境变量 os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) 如果path是绝对路径,返回True os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 os.path.getsize(path) 返回path的大小
在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。 >>> os.path.normcase(‘c:/windows\system32\‘) ‘c:\windows\system32\‘ 规范化路径,如..和/ >>> os.path.normpath(‘c://windows\System32\../Temp/‘) ‘c:\windows\Temp‘ >>> a=‘/Users/jieli/test1/\a1/\\aa.py/../..‘ >>> print(os.path.normpath(a)) /Users/jieli/test1
os路径处理 #方式一:推荐使用 import os #具体应用 import os,sys possible_topdir = os.path.normpath(os.path.join( os.path.abspath(__file__), os.pardir, #上一级 os.pardir, os.pardir )) sys.path.insert(0,possible_topdir) #方式二:不推荐使用 os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
六、shutil模块
该模块用于简化文件的高级操作
主要是:复制,移动,删除,压缩文件
1、复制文件
copyfileobj(fsrc, fdst, length=16*1024)
1 import shutil 2shutil.copyfileobj(open("a.txt","r",encoding="utf8"),open("b.txt","w",encoding="utf-8"),length=1024)
以上是关于常用内置模块--timeossysrandomshutilpicklejson的主要内容,如果未能解决你的问题,请参考以下文章