zoukankan      html  css  js  c++  java
  • Python 常用模块

    • sys

    sys模块代表Python解释器,主要用于获取和Python解释器相关的信息
    常用属性和函数
      sys.argv:获取运行Python程序的命令行参数。其中sys.argv[0]通常指该Python程序,其中sys.argv[1]代表Python程序提供的第一个参数,以此类推
      sys.exit():通过引发SystemExit异常来退出程序。将其放在try模块中并不能阻止finally模块执行。
      sys.path:该属性指定Python查找模块的路径列表。程序可通过修改该属性来动态增加Python加载模块的路径。
      sys.maxsize:返回Python整数支持的最大值。32位系统上该值为2**31-1,,64位系统上该值为2**63-1。
      sys.version:返回当前python解释器的版本信息。
      sys.winver:返回当前Python解释器的主版本号。
      sys.executable:返回Python解释器在磁盘上的存储位置。
      sys.getfilesystemencoding():返回在当前系统中保存文件所用的字符集。

    • os

    os模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息。
    常用属性和函数
      os.environ:返回在当前系统上所有环境变量组成的字典。
      os.getenv(key,default=None):获取指定环境变量的值。
      os.putenv(key,value):用于设置环境变量。
      os.getlogin():返回当前系统的登录用户名。类似的还有os.getuid(),os.getgroups(),getgid()等函数。
      os.getpid():获取当前进程ID。
      os.getppid():获取当前进程的父进程ID。
      os._exit(n):用于强制退出Python解释器。将其放在try模块中可以阻止finally模块执行
      os.kill(pid,sig):将sig信号发送给pid对应的进程,用于结束该进程。类似的还有os.killpg(pgid,sig)。
      os.system(command):运行操作系统上的指定命令。

    • time

    常用函数
      time.time():返回从1970年1月1日0点整到现在过了多少秒。
      time.asctime([t]):将时间元组或struct_time转换为时间字符串。如果不指定参数t,默认转换当前时间。
      time.ctime([secs]):将以秒数代表的时间转换为时间字符串。
      time.gmtiime([secs]):将以秒数代表的时间转换为struct_time对象。如果不传入参数,默认转换当前时间。
      time.localtime([secs]):将以秒数代表的时间转换为代表当前时间的struct_tune对象。如果不传入参数,默认转换当前时间。受时区影响。
      time.mktime(t):用于将struct_time对象转换为秒数时间。是localtime函数的反转函数。
      time.strftime(format[,t]):将时间元组或struct_time对象格式化为指定格式的时间字符串,如果不指定参数t,默认转换当前时间。
      time.strptime(string[,format]):将字符串格式的时间解析成struct_time对象。
      time.timezone:返回本地时区的时间偏移,以秒为单位。
      time.tzname:返回本地时区的名字。
      time.process_time():返回当前进程使用CPU的时间,以秒为单位。

    • json

    json是一种轻量级、跨平台、跨语言的数据交换格式,json格式被广泛应用于各种语言的数据交换中。
    常用函数
      json.dump(obj,fp,*):将obj对象转换成json字符串输出到fp流中,fp是一个支持write()方法的类文件对象。用于从json字符串转换成Python对象。
      json.dumps(obj,*):将obj对象转换成json字符串,并返回该json字符串。用于从json字符串转换成Python对象。
      json.load(fp,*):从fp流中读取json字符串,将其恢复成json对象,其中fp是一个支撑write()方法的类文件对象。用于从Python字符串转换成json对象。
      json.loads(s,*,encoding=None):将json字符串s恢复成json对象。用于从Python字符串转换成json对象。

    • re

    常用函数
      re.compile(pattern,flags=0):用于将正则表达式字符串编译成_sre.SRE_Pattern对象,该对象代表了正则表达式编译之后再内存中的对象,它可以缓存并复用正则表达式字符串。
      re.match(pattern,string,flags=0):尝试从字符串的开始位置来匹配正则表达式,如果从开始位置匹配不成功,返回None。该函数返回_sre.SRE_Match对象。
      re.search(pattern,string,flags=0):扫描整个字符串,并返回字符串中第一处匹配pattern的匹配对象。该函数返回_sre.SRE_Match对象。
        _sre.SRE_Match.span(n):获取第n+1个组匹配位置。
        _sre.SRE_Match.group(n):获取第n+1个组匹配的字串。
        _sre.SRE_Match.re:该属性返回执行正则表达式匹配时所用的正则表达式。
        _sre.SRE_Match.strint:该属性返回执行正则表达式匹配时所用的字符串。
      re.findall(pattern,string,flags=0):扫描整个字符串,并返回字符串中所有匹配pattern的字串组成的列表
      re.finditer(pattern,string,flags=0):扫描整个字符串,并返回字符串中所有匹配pattern的字串组成的迭代器,迭代器的元素是_sre.SRE_Match对象。
      re.fullmatch(pattern,string,flags=0):该函数要求整个字符串能匹配pattern,如果能匹配返回_sre.SRE_Match对象,否则返回None。
      re.sub(pattern,repl,string,count=0,flags=0):该函数用于将string字符串中所有匹配pattern的内容替换成repl,count参数控制最多替换多少次,如果为0表示全部替换。
      re.split(pattern,string,maxsplit=0,flags=0):使用pattern对string进行分割,该函数返回分割得到的多个字串组成的列表。maxsplit参数控制分割多少次。
      re.escape(pattern):对模式中除ASCII字符、数值、下划线之外的他字符进行转义。

    • 旗标(flags)

    re.A或re.ASCII:该旗标控制w、W、、B、d、D、s、S只匹配ASCII,二部匹配所有的Unicode字符。对应正则表达式中的(?a)行内旗标。
    w:匹配所有的单词字符,包括数字、26个英文字母和下划线。
    W:匹配所有的非单词字符。
    d:匹配0-9所有数字。
    D:匹配非数字。
    s:匹配所有空白字符,包括空格、制表符、回车符、换页符、换行符等。
    S:匹配所有的非空白字符。
    re.I或re.IGNORECASE:使用正则表达式匹配时不区分大小写。对应正则表达式中的(?i)行内旗标。
    re.L或re.LOCALE:根据当前区域设置使用正则表达式匹配时不区分大小写,该旗标只能对bytes模式起作用。对应正则表达式中的(?L)行内旗标。
    re.M或re.MULTILINE:多行模式。当指定该旗标后,"^"能匹配字符串的开头和每行的开头(紧跟在没一个换行符的后面),"$"能匹配字符串的末尾和每行的末尾。对应正则表达式中的(?m)行内旗标。
    re.S或re.DOTALL:让点(.)能匹配包括换行符在内的所有字符,如果不指定不能匹配换行符。对应正则表达式中的(?s)行内旗标。
    re.X或re.VERBOSE:通过该旗标允许分行书写正则表达式,也允许为正则表达式添加注释。对应正则表达式中的(?x)行内旗标。
    re.DEBUG:显示编译正则表达式的Debug信息。 无行内旗标。

    • 子表达式

    正则表达式还支持圆括号表达式,用于将多个表达式组成一个子表达式(组)。支持如下用法:
    1)(exp):匹配exp表达式并捕获成一个自动命名的组,后面可通过“1”引用第一个捕获组所匹配的字串,“2”引用第2个。
    2)(?P<name>exp):匹配exp表达式并捕获成命名组,该组的名字为name参数。后面可通过(?P=name)来引用前面捕获的组。
    3)(?:exp):匹配exp表达式但不捕获。后面无法使用“1”、“2”引用。
    4)(?<=exp):括号中的子模式必须出现在匹配内容的左侧,但exp不作为匹配的一部分。
      (?=exp):括号中的子模式必须出现在匹配内容的右侧,但exp不作为匹配的一部分。
      例如:
        re.search(r'(?<=<h1>).+?(?=</h1>)','<h1>123.456.789</h1>')
        m.group()------->123.456.789
    5)(?aiLmsux):旗标组,用于为整个正则表达式添加行内旗标。可同事指定一个或多个旗标。
    6)(?imsx-imsx:exp):只对当前组起作用的旗标。

    • 贪婪模式与勉强模式

    在默认情况下,正则表达式的频度限定是贪婪模式的,就是尽可能多的匹配字符。
    只要在频度限定之后添加一个英文问号,贪婪模式就变成了勉强模式,就是进可能少的匹配字符。

     

  • 相关阅读:
    Python合集之Python循环语句(二)
    io流2
    io流
    集合工具类
    泛型
    Map
    VSCode_Extensions
    C++ in VSCode
    C# 私有字段前缀 _ 的设置(VS2019, .editorconfig)
    dotnet 跨平台编译发布
  • 原文地址:https://www.cnblogs.com/9host/p/13470776.html
Copyright © 2011-2022 走看看