#yyds干货盘点#python常用模块

网友投稿 219 2022-09-05


#yyds干货盘点#python常用模块

1、time模块

>>> import time>>> time.time() # 时间戳1518141499.9243798>>> time.strftime('%Y-%m-%d %X') # 格式化的时间字符串'2018-02-09 09:59:24'>>> time.localtime() # 本地时区的struct_timetime.struct_time(tm_year=2018, tm_mon=2, tm_mday=9, tm_hour=10, tm_min=34, tm_sec=0, tm_wday=4, tm_yday=40, tm_isdst=0)>>> time.gmtime() # 本地时区的struct_timetime.struct_time(tm_year=2018, tm_mon=2, tm_mday=9, tm_hour=2, tm_min=34, tm_sec=18, tm_wday=4, tm_yday=40, tm_isdst=0)

时间之间的转换

格式化的字符串时间--->strptime--->结构化的时间--->mktime--->时间戳

时间戳--->localtime,gmtime--->结构化的时间--->strftime--->格式化的字符串时间

import timet1 = time.time() # 时间戳print(t1)t2 = time.localtime(t1) # 将时间戳转换为结构化的时间print(t2)t3 = time.strftime('%Y-%m-%d %X', t2) # 将结构化的时间转换为格式化的字符串时间print(t3)old_time = '2001-04-11 22:26:24't4 = time.strptime(old_time, '%Y-%m-%d %X') # 将格式化的字符串时间转换为结构化的时间print(t4)t5 = time.mktime(t4) # 将格式化的时间转换为时间戳print(t5)运行结果:1518153730.046175time.struct_time(tm_year=2018, tm_mon=2, tm_mday=9, tm_hour=13, tm_min=22, tm_sec=10, tm_wday=4, tm_yday=40, tm_isdst=0)2018-02-09 13:22:10time.struct_time(tm_year=2001, tm_mon=4, tm_mday=11, tm_hour=22, tm_min=26, tm_sec=24, tm_wday=2, tm_yday=101, tm_isdst=-1)986999184.0

1. 结构化的时间--->asctime--->%a %b %d %H %M %S %Y

把一个表示时间的元组或者struct_time表示为这种形式:Fri Feb 9 12:50:11 2018

如果没有参数,将会将time.localtime()作为参数传入

2. 时间戳--->ctime--->%a %b %d %H %M %S %Y

把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式

如果参数未给或者为None的时候,将会默认time.time()为参数

它的作用相当于time.asctime(time.localtime(secs))

t6 = time.asctime()print(t6)t7 = time.ctime(986999184.0)print(t7)运行结果:Fri Feb 9 13:18:34 2018Wed Apr 11 22:26:24 2001

2、datetime模块

#时间加减import datetimeprint(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2016-08-19print(datetime.datetime.now() )print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分c_time = datetime.datetime.now()print(c_time.replace(minute=3,hour=2)) #时间替换

3、random模块

>>> import random>>> random.random() #(0,1)----float 大于0且小于1之间的小数0.006142880071465462>>> random.randint(1,3) #[1,3] 大于等于1且小于等于3之间的整数3>>> random.randrange(1,3) #[1,3) 大于等于1且小于3之间的整数1>>> random.choice([1,'3',[4,5]]) #1或者23或者[4,5]'3'>>> random.sample([1,'23',[4,5]],2) #列表元素任意2个组合['23', [4, 5]]>>> random.uniform(1,3) #大于1小于3的小数,如1.927109612082716 2.269152764705888>>> item = [1,3,5,7,9]>>> random.shuffle(item) #打乱item的顺序,相当于"洗牌">>> print(item)[9, 3, 5, 1, 7]"""random做随机数"""import randomdef make_code(n): res = '' for i in range(n): s1 = chr(random.randint(65, 90)) # 字母A-Z s2 = str(random.randint(0, 9)) # 数字0-9 s3 = chr(random.randint(97, 122)) # 字母a-z res += random.choice([s1, s2, s3]) return resprint(make_code(7))

4、OS模块

OS模块是与操作系统交互的一个接口

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cdos.curdir 返回当前目录: ('.')os.pardir 获取当前目录的父目录字符串名:('..')os.makedirs('dirname1/dirname2') 可生成多层递归目录os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirnameos.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirnameos.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印os.remove() 删除一个文件os.rename("oldname","newname") 重命名文件/目录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.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不存在,返回Falseos.path.isabs(path) 如果path是绝对路径,返回Trueos.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回Falseos.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回Falseos.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间os.path.getsize(path) 返回path的大小

1.在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为反斜杆

>>> os.path.normcase('c:/windows\\system32\\') 'c:\\windows\\system32\\'

2. 规范化路径,如..和/

>>> 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

3.os路径处理

#方式一:推荐使用import os#具体应用import os,syspossible_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__))))

5、sys模块

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

6、shutil模块

7、json模块

什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化

为什么要序列化?

持久保存状态

跨平台数据交互

序列化之后,不仅可以把序列化后的内容写入磁盘,还可以通过网络传输到别的机器上,如果收发的双方约定好实用一种序列化的格式,那么便打破了平台/语言差异化带来的限制,实现了跨平台数据交互。

示例代码

import jsondic = {'name': 'alvin', 'age': 23, 'sex': 'male'}with open('a.json','w') as f: f.write(json.dumps(dic))with open('a.json','r') as f: f_json = json.loads(f.read()) print(f_json) import json#dct="{'1':111}"#json 不认单引号#dct=str({"1":111})#报错,因为生成的数据还是单引号:{'one': 1}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 函数进阶-递归函数(python培训)
下一篇:Java整合腾讯云短信发送实例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~