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之内置模块的主要内容,如果未能解决你的问题,请参考以下文章

Python之模块

Python入门之模块——第2关:内置模块中的内置函数

Python入门之模块——第2关:内置模块中的内置函数

python之模块和包

python之模块和包

Python内置模块之timedatetime