9月12日学习内容整理:常用模块

一、collections模块:提供额外的数据类型

from collections import  类型名

1、可命名元组namedtuple

a = namedtuple('point',['x','y'])

a1=a(1,2)

a1.x=1

a1.y=2

对于一些有相同属性的元素就可以这样来取值

2、双端队列deque:可从两端取值删值,先进先出

q = depue( [     ] )

q.append()    在末尾追加

q.appendleft()   在开头添加

q.pop()    在末尾删除

q.popleft()  在开头删除

3、OrderedDict 有序字典

4、defaultdict  有默认值的字典

5、counter  计数器

(字符串)自动输出每个字符出现的次数,也可以指定内容

二、time模块

1、表示时间的方法:

(1)时间戳:time.time() 从1970年1月1日0时开始到现在的秒数,浮点型

(2)字符串:time.strftime()  %Y年%m月%d日%H时%M分%S秒

(3)元组:time.localtime()

2、相互转换

(1)时间戳转元组:localtime()中国时间     gmtime()英国时间

    元组转时间戳:mktime()

(2)元组转字符串:strftime('%Y-%m-%d',time.localtime())   指定字符串的格式,元组方法表示的时间

           asctime()

   字符串转元组:strptime('2013-9-11','%Y-%m-%d')     指定要转换的字符串的格式

(3)时间戳转字符串:ctime(时间戳)

三、random模块:用于随机生成或返回一个值或多个值

1、choice(可迭代)随机返回一个元素

2、randint(1,5)  随机返回一个>=1   <=5的数字,这里的范围就是两端都包括了

3、sample(可迭代,2)  随机返回2个元素,输出列表,2代表返回元素个数

4、shuffle(列表)  打乱列表顺序输出

四、sys模块:用来和python解释器交互

1、sys.argv   命令行参数,第一个元素是程序本身路径

2、sys.version   python版本

3、sys.exit    退出

4、sys.path   模块的搜索路径,里面有可调用的模块的所有路径,是列表,可追加需要的模块

5、sys.platform   返回当前操作系统平台是什么

五、os模块:用来和操作系统交互

1、和目录(文件夹)有关

2、和路径有关

3、和文件相关

4、和操作系统相关

5、和系统命令相关

 

'''
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下为"\t\n",Linux下为"\n"
os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command")  运行shell命令,直接显示
os.popen("bash command)  运行shell命令,获取执行结果
os.environ  获取系统环境变量


os.path
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的大小
'''

 

注意:os.stat('path/filename' 获取文件/目录信息 的结构说明

stat 结构:

st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

stat 结构
stat

 

六、序列化模块

序列化:字典列表等转变为字符串的过程

目的:存储持久化;对象从一个地方传递到另一个地方;程序更具维护性

1、json

(1)一般用在网络传输:

dumps(字典)序列化成字符串

loads(字符串) 反序列化成字典,字符串要求必须是单引号,其中字典的key用双引号,否则无法反序列化

(2)一般用于文件操作:

dump(字典,文件句柄)将序列化后的字符串写到文件中,文件模式不能为只读

load(文件句柄) 读取文件内容反序列化成字典后输出

注意:

非汉字的字符串json序列化时都会完全的显示字符串来不会有乱码,但当有中文字符时序列化时就会显示编码(十六进制),所以dump(eniure_ascii=False)使用这个参数中文字符就会被完全的序列化显示出来,不会显示出编码

2、pickle

提供的方法和json完全一样

(1)和json的区别:

  1)json一般处理python中基本的数据类型,字典列表和元组;pickle可以处理所有的数据类型包括自己定义出来的,所以json只适用于python,而pickle序列化出的字符串可以被其它语言识别

  2)json序列化出的字符串会被完整的显示出来,而pickle显示出来的是字节类型,所以在写文件时要用wb模式

3、shelve

(1)只有1个open方法,不支持多个应用同时向一个文件写

#shelve
import shelve
f = shelve.open('shelve_file')   #f = {}
f['key1'] = {'int':10, 'float':9.5, 'string':'Sample data'}  #直接对文件句柄操作,就可以存入数据
f['key2'] = {'int':10, 'float':9.5, 'string':'Sample data'}  #直接对文件句柄操作,就可以存入数据
f.close()
shevle举例

(2)使用参数:writeback=True  就可以进行修改

(3)缺点:占用内存

 

转载于:https://www.cnblogs.com/wanghl1011/articles/7509920.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值