• Python标准库概览


      Python标准库通常被称为“自带的电池”,自然地提供了广泛的功能,涵盖了大概200个左右的包与模块。不断有高质量的包或模块被开发出来,极大的丰富了标准库。但有些模块放在标准库中很难去维护,比如“Berkeley DB”模块,其被清理出标准库进行单独维护。还有一些库,比如PyParsing(创建分析器)也是没有被加在标准库中。

    1 字符串处理

    1.1 String模块

      常量:string.ascii_letters、 string.hexdigits。

      string.Formatter子类,自定义字符串格式化器。textwrap模块可用于捕获指定宽度的文本行,并最小化缩排的需求。

    1.2 Struct模块

      提供了一些函数,将数字布尔型变量以及字符串打包为字节对象(以其二进制表示),或从字节对象中拆分为适当的类型,用于跟C语言底层的交互。

    1.3 difflib模块

      提供了用于对比序列(比如字符串)进行比较的类与方法,并可以产生以标准的“diff”格式与HTML格式输出信息。

    1.4 re正则表达式

      最强大的字符串处理模块

    2 io.StringIO类 

      python提供两种将文本写入到文件的方法,一种是使用open,write方法,一种是print()函数,并将其关键字参数file设置为打开并等待写入的文件对象。比如:

        

    print("An error message", file = sys.stdout)
    sys.stdout.write("Another error message
    ")
    

      以上两行文本都将被打印输出到sys.stdout中,这是一个文件对象,表示“标准输出流”

      如果使用了sys.stdout = io.StringIO,那么输入到sys.stdout中的文件都将会发送给io.StringIO。可通过io.StringIO.getvalue()函数来获取值。

    3 命令行程序设计

      fileinput.input()对控制台中重定向的所有行进行迭代。fileinput.filename()与fileinput.lineno(),该模块可在任意时刻报告当前文件名与行号。

      处理命令行选项模块:optparse和getopt

      

    import optparse
    def main():
        parser = optparse.OptionParser()
        parser.add_option("-w","--maxwidth",dest = "maxwidth",type = 'int',help = ("the maximum number of characters that can be""output to string fields[default:%default]"))
        parser.add_option("-f","--format",dest = 'format',help = "the format used for outputting numbers""[default:%default]")
        parser.set_defaults(maxwidth = 100,format = ".0f")#设置初始值
        opts,args = parser.parse_args()
    

    4 数学与数字

      内置:int,float,complex

      数值型标准库:decimal.Decimal,fraction.Fraction

      标准的数学函数:math

      复数数学函数:cmath

      随机数:random

    5 时间和日期

      calendar和datetime

    6 算法与组合数据类型

      bisect 搜索有序序列

      heapq将序列转换为堆    

    import heapq
    heap = []
    heapq.heappush(heap, (5, "rest"))
    heapq.heapify()#将列表转换为堆,可以自动完成必要的重新排序
    heapq.heappop()#从堆中移除最小项
    heapq.merge()#任意数量的排序后的迭代作为参数返回一个迭代子。

      collection包提供了collectio.defaultdict和collection.named- tuple, collection.UserList, collection.UserDict.Collection.deque(跟list作用相同但是list只在列表结尾添加或删除有很快的速度,collection在开始和结尾都有很快的速度。)

      collection.OrderDict和collection.Counter(提供一个保持各种技术的便捷且快速的方法。以二元组(元素,个数)返回唯一元素或最常见元素的列表。

      array提供了序列类型:array.array(与列表的区别是:对象类型是固定的)

      weakref:弱引用功能。(与通常引用的区别在于如果对某个对象仅有弱引用,那么该对象仍然可以被调度进入垃圾收集,用于防止仅因为对其引用而存在内存里。

    7 文件,目录与进程处理

      Shutil模块提供了用于文件与目录处理的高层函数,用于包括复制文件与整个目录的shutil.copy()和shutil.copytree()函数,移动目录树的shutil.move()移动整个目录树的shutil.rmtree()函数

      临时文件的创建应该使用tempfile模块,tempfile.mkstemp()创建临时对象。

      filecmp用于文件的比较filecmp.cmp(),整个目录的比较filecmp.cmpfiles()

      Processing 和MultiProcessing

      os模块:os.environ环境变量名和值。os.getcwd可获取程序工作目录。os.chdir修改工作目录。os.access确定某个文件是否存在或可读写。os.listdir()给定目录中的条目列表os.stat()返回文件与目录的各种信息项(模式,访问时间,大小)os.mkdir()创建目录 os.make-dirs()创建中间目录。os.rmdir()移除空目录os.rename()重命名os.walk()整个目录树上迭代,依次取回每个文件与目录的名称os.path.abspath()返回绝对路径os.path.split()返回二元组,第一项包含路径第二项则是文件名(os.path.basename()与os.path.dirname())文件名也可分为两部分(名称和扩展名)os.splitext()。os.path.join()接受任意数量的路径字符串,并使用特定分隔符返回。

  • 相关阅读:
    redis如何实现数据同步
    mysql调优学习笔记
    介绍一个好用的dao层与mybatis互跳的idea插件MyBatisCodeHelperPro
    springboot执行流程
    zookeeper
    (原创) cocos2dx使用Curl连接网络(客户端)
    (转) Eclipse连接MySQL数据库(傻瓜篇)
    (原创)cocos2dx使用jsoncpp的正确姿势
    Java web开发(17)SpirngMVC 详解
    PLC 程序和仿真
  • 原文地址:https://www.cnblogs.com/BigJ/p/7470469.html
Copyright © 2020-2023  润新知