Python之内置模块
Posted serendipity
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之内置模块相关的知识,希望对你有一定的参考价值。
1. collections模块(扩展数据类型)
1. nametuple:可命名元组,生成可以使用名字来访问元素内容的tuple。(用来表示坐标,求圆的面积)
from collections import namedtuple P = namedtuple("point",["x","y","z"]) # P,point,和后面列表里的都是可以定义的 print(p.x)
2. deque:双端队列,可以快速的从另外一侧追加和推出对象。deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈。
from collections import deque q = deque([‘a‘, ‘b‘, ‘c‘]) q.append(‘x‘) #- --功能1 q.appendleft(‘y‘) #- --功能2 print(q) q.pop() #- --功能3 print(q) q.popleft() #- --功能4 print(q)
3. OrderDict:有序字典
from collections import OrderedDict d = dict([(‘a‘, 1), (‘b‘, 2), (‘c‘, 3)]) # 正常创建字典的方法 od = OrderedDict([(‘a‘, 1), (‘b‘, 2), (‘c‘, 3)]) # od是有序的 print(od) od = OrderedDict() od[‘z‘] = 1 od[‘y‘] = 2 od[‘x‘] = 3 print(od.keys()) # 按照插入的Key的顺序返回
4. defaultdict:带有默认值的字典,使用dict时,如果引用的Key不存在,就会抛出KeyError。
如果希望key不存在时,返回一个默认值,就可以用defaultdict。
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90...], # 将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 # 即: {‘k1‘: 大于66 , ‘k2‘: 小于66} from collections import defaultdict values = [11, 22, 33,44,55,66,77,88,99,90] my_dict = defaultdict(list) for value in values: if value>66: my_dict[‘k1‘].append(value) else: my_dict[‘k2‘].append(value) print(my_dict)
5. Counter:计数器。
Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。
from collections import Counter c = Counter(‘abcdeabcdabcaba‘) print(c)
2. sys模块(与python解释器交互的接口)
sys.argv # 命令行参数List,第一个元素是程序本身路径 sys.exit(n) # 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version # 获取Python解释程序的版本信息 sys.path # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform # 返回操作系统平台名称
import sys print(sys.argv) # 在Terminal中传参数时使用,第一个元素是文件路径 print(sys.version) # 查看Python解释器版本 sys.exit() # 退出 sys.path() # 查看模块 print(sys.platform)
3. 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.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‘) 获取文件/目录信息 的结构说明
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)是创建时间(详细信息参见平台的文档)。
以上是关于Python之内置模块的主要内容,如果未能解决你的问题,请参考以下文章