zoukankan      html  css  js  c++  java
  • 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)是创建时间(详细信息参见平台的文档)。
    
  • 相关阅读:
    「beta不只是为了测试」​​​​​​​​​​​​​​​​​​写出我心(一百八十八)​
    「多尝试换一种思路」​​​​​​​​​​​​​​​​​​写出我心(一百八十七)
    「先给事情排个优先级」​​​​​​​​​​​​​​​​​​写出我心(一百八十六)
    「为达目标,不折手段」​​​​​​​​​​​​​​​​​写出我心(一百八十五)
    「迈出第一步」​​​​​​​​​​​​​​​​写出我心(一百八十四)
    「认真思考,果断提问」​​​​​​​​​​​​​​​写出我心(一百八十三)
    「提高阅读速度的4个步骤」​​​​​​​​​​​​​​写出我心(一百八十二)
    「一行精华」​​​​​​​​​​​​​写出我心(一百八十一)
    「阅读的量要大于质」写出我心(一百八十)
    Programming Concepts: Static vs. Dynamic Type Checking
  • 原文地址:https://www.cnblogs.com/chitalu/p/12353235.html
Copyright © 2011-2022 走看看