欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python内置模块介绍(一)

程序员文章站 2022-06-09 13:46:49
本文主要介绍模块列表如下: os模块 os.path下方法 没有小括号 sys模块 re模块 re模块的函数介绍 正则表达式符号含义 time模块 在time模块中有3中标示时间的方式:1.时间戳,2.格式化的时间字符串,3.元祖(struct_time,有9个元素) UTC(Coordinated ......

 本文主要介绍模块列表如下:

  1. sys
  2. re
  3. time
  4. datetime
  5. random
  6. shutil
  7. subprocess

os模块 

  1. os.getcwd()                               获取当前工作目录
  2. os.chdir("/path/to")                    将目录切换到/path/to目录,等价于shell中的cd命令
  3. os.makedirs('path1/path2')        创建多层目录(可以多层目录同时不存在),相当于shell中的mkdir -p 命令
  4. os.removedirs("path1/path2")    删除空目录,如果目录不空就会报错,首先删除path2目录,如果path1也变成空目录了,也会删除path1,知道所给目录的第一层(即示例中的path1)停止
  5. os.mkdir("path")                         创建单层目录path,相当于shell中的mkdir,注:path目录所在的上一层目录必须已经存在
  6. os.rmdir("path")                          删除单层目录path,相当于shell中的rmdir
  7. os.listdir("path")                          列出指定目录下的所有文件和子目录,包括隐藏文件,返回值是列表
  8. os.remove("file")                         删除单个文件
  9. os.rename("a","b")                      重命名(文件或目录)
  10. os.stat("a")                                  获取a(文件或目录)的所有信息:返回值是一个os.stat_result类
  11. os.system("shell command")      运行shell命令,直接显示运行结果,返回值是程序执行成功的code,非shell运行结果的返回值,0代表成功,非0失败

os.path下方法

  1. os.path.abspath(path)                 返回path的绝对路径
  2. os.path.realpath(path)                 返回path的绝对路径,和abspath不同的是,如果path是一个连接,返回的是path所连接的绝对路径
  3. oa.path.split("path")                     将path分割成目录和文件名,返回值是二元的元祖
  4. os.path.dirname("path")               返回path所在的目录
  5. os.path.basename("path")           返回path文件名
  6. os.path.exists("a")                        如果a存在,返回true;如果a不存在,返回false;a可以是文件也可以是目录
  7. os.path.isabs("path")                    如果path是绝对路径,返回true
  8. os.path.isfile("path")                     如果path是一个存在的文件,返回true。否则返回false
  9. os.path.isdir("path")                      如果path是一个存在的目录,则返回true。否则返回false
  10. os.path.join(path1[, path2[, ...]])   将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
  11. os.path.getsize("a")                      返回a的大小(如果a是文件,就是文件大小;如果a是目录,则是目录内inode列表所占空间,而不是目录内文件所占的空间大小;如果a是符号链接,是指链接文件的路径名的字节数)
  12. os.path.getatime("a")                   返回a所指向的文件或者目录的最后访问时间
  13. os.path.gettime("a")                     返回a所指向的文件或者目录的最后权限修改时间
  14. os.path.getmtime("a")                  返回a所指向的文件或者目录的最后内容修改时间

没有小括号

  1. os.curdir                                      返回值是".",即当前目录的相对路径,注意:没有小括号
  2. os.pardir                                      返回值是"..", 即上一层目录的相对路径,注意:没有小括号
  3. os.sep                                         输出操作系统的路径分隔符,win下为"\\",linux下为"/",没有小括号
  4. os.linesep                                   输出当前操作系统的行终止符,win下为"\t\n",linux下为"\n",没有小括号
  5. os.pathsep                                  输出当前操作系统用于分割文件路径的字符串,没有小括号
  6. os.name                                      输出当前使用平台,win->'nt'; linux->'posix'
  7. os.environ                                   获取系统环境变量,返回值是一个类,可以通过返回值的各种方法调用里面的值

sys模块

  1. sys.argv                                     命令行list数据,第一个元素是程序本身
  2. sys.exit(a)                                  退出程序,如果a是假则正常退出,如果真,则异常退出,并返回a(假可以是0,false,空字符串等;真则不是空的数据)
  3. sys.version                                打印python解释程序的版本
  4. sys.path                                     返回模块的搜索路径,它对应的是一个list类型,可以通过list的方法进行修改
  5. sys.platform                               返回操作系统的名称
  6. sys.stdout.write("a")                   标准输出打印a(对应的还有stderr)

re模块

re模块的函数介绍

  1. re.match(pattern,string)            从头开始匹配
  2. re.search(pattern,string)           匹配(如果pattern增加了^,就和match功能一样)
  3. re.findall(pattern,string)            把所有匹配到的字符以 list形式 返回
  4. re.split(pattern,string)               将string按照pattern分割,返回列表,列表中的元素不包含pattern
  5. re.sub(pattern,replace,string)   将string中的pattern替换成replace

正则表达式符号含义

  1. "."           默认匹配除\n之外的任意一个字符,若指定flag dotall,则匹配任意字符,包括换行
  2. "^"          匹配字符开头,若指定flags multiline,这种(r"^a","\nabc\neee",flags=re.multiline)也可以匹配上(不指定flags,"\nabc\neee"就是一行)
  3. "$"          匹配字符结尾,若指定flags multiline,这种("foo$","bfoo\nsdfsf",flags=re.multiline)也可以匹配上,同上
  4. "*"           匹配*号的字符0次或多次
  5. "+"          匹配一个字符1次或多次
  6. "?"          匹配一个字符0次或1次
  7. "{m}"      匹配一个字符至少m次
  8. "{m,n}"    匹配前一个字符m到n次(即最少m次,最多n次)
  9. "|"            匹配|左或|右的字符
  10. "(...)"       分组匹配,分组的顺序:从左到右,从外到内
    1. 分组还可以细分,普通分组,命名分组,后向引用,前向肯定断言,后向肯定断言,前向否定断言、后向否定断言
    2. 普通分组,则是通过1,2.....来获取匹配到信息,如re.search(r"(abc)","abcdefg").group(1)
    3. 命名分组,则是通过给分组命名来获取匹配到的信息,如(?p<name>正则表达式),这里的命名就是name,通过groupdict("name")函数获取捕获值
    4. 其他用的不多
  11. [...]          匹配中扩内的人一个字符,如果中括号前加^(即[^]),代表匹配非中括号内任一个字符
  12. "\a"         只从字符开头匹配,re.search("\aabc","alexabc") 是匹配不到的
  13. "\z"         匹配字符结尾,同$
  14. "\d"         匹配数字[0-9]
  15. "\d"        匹配非数字
  16. "\w"        匹配[a-za-z0-9]
  17. "\w"       匹配非[a-za-z0-9]
  18. "\s"         匹配空白字符、\t、\n、\r
  19. "\s"        匹配\s的补集
    1. \d和\d,\w和\w,\s和\s每一对都是对方的补集,一起可以组成全部的字符

time模块

  • 在time模块中有3中标示时间的方式:1.时间戳,2.格式化的时间字符串,3.元祖(struct_time,有9个元素)
  • utc(coordinated universal time,协调世界时),世界标准时间,中国是utc+8;dst(daylight saving time)夏令时
  • 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日0:00:00开始按秒计算的量
  • 元祖(struct_time)有9个元素,tm_year:年份,tm_mon:月,tm_mday:日期,tm_hour:小时,tm_min:分钟,tm_sec:秒,tm_wday:星期中的第几天(周一用0表示),tm_yday:一年中的第几天,tm_isdst:是否为夏令时

函数介绍

  time中各种类型时间的转换,引用:https://blog.51cto.com/egon09/1840425

python内置模块介绍(一)

 

  1. time.time()                           当前的时间,类型是时间戳(timestamp)
  2. time.sleep(timestamp)         程序睡眠,单位秒
  3. time.gmtime([timestamp])    类型为struct_time;不传递参数,当前utc的时间;如果传递参数,则为从1970年1月1日0:00:00经过timestamp时间后的utc时间
  4. time.localtime([timestamp])  类型为struct_time;不传参数,是当前本地的时间;如果传递参数,则为从1970年1月1日0:00:00经过timestamp时间后的本地时间
  5. time.asctime([struct_time])   类型为字符串,格式为"'wed jul 17 08:40:40 2019'"”;不传递参数,解析当前时间;传递参数,解析参数时间
  6. time.ctime([timestamp])          类型为字符串,格式为"'wed jul 17 08:40:40 2019'"”;不传递参数,解析当前时间;传递参数,解析参数时间(和上面不同给的是传递参数类型不同)
  7. time.strptime(string,format)  返回struct_time类型,将string按照format解析,format格式下面介绍
  8. time.strftime(format[,tuple]   返回字符串,将时间按照format形式转换为字符串格式,没有指定tuple time,则默认使用localtime

 

    1. %y 两位数的年份表示(00-99)
    2. %y 四位数的年份表示(000-9999)
    3. %m 月份(01-12)
    4. %d 月内中的一天(0-31)
    5. %h 24小时制小时数(0-23)
    6. %i 12小时制小时数(01-12)
    7. %m 分钟数(00-59)
    8. %s 秒(00-59)
    9. %a 本地简化星期名称
    10. %a 本地完整星期名称
    11. %b 本地简化的月份名称
    12. %b 本地完整的月份名称
    13. %c 本地相应的日期表示和时间表示,返回和time.ctime一样
    14. %j 年内的一天(001-366)
    15. %p 本地a.m.或p.m.的等价符
    16. %u 一年中的星期数(00-53)星期天为星期的开始
    17. %w 星期(0-6),星期天为星期的开始
    18. %w 一年中的星期数(00-53)星期一为星期的开始
    19. %x 本地相应的日期表示
    20. %x 本地相应的时间表示
    21. %z 当前时区的名称 # 乱码
    22. %% %号本身

 

datetime模块

  1. datetime.dateime.now()                                                                 返回当前时间,类型是 datetime.datetime,
  2. datetime.timedelta()                                                                       这个函数不单独使用,要配合now函数,对时间进行加减,比如:datetime.dateime.now() + datetime.timedelta(-3)
    1. timedelta的参数有:days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0

日期的函数还有calendar(日历)模块,详细见:

random模块

  1. random.random()                           返回浮点型数字,区间为[0.0 1)---不包含1
  2. random.uniform(a,b)                      返回浮点型数字,可自定义区间,[a,b)
  3. random.int(a,b)                              返回整数,区间为[a,b]
  4. random.randrange(a,b)                 返回整数,区间[a,b)区间性质和range函数一样
  5. random.choice(seq)                      返回seq中的一个元素
  6. random.shuffle(x)                          对x重新洗牌,即打乱顺序,x是一个列表

shutil模块shutil

高级的文件,文件夹处理

  1. shutil.copyfilebj(src,dst)                拷贝文件对象,src和dst必须是文件句柄(即open后的文件句柄)
  2. shutil.copyfile(src,dst)                   拷贝文件,src和dst是文件名称(调用copyfilebj来实现的)
  3. shutil.copymode(src,dst)               拷贝文件权限,内容、组、用户均不变,src和dst都是文件,且必须存在
  4. shutil.copystat(src,dst)                   拷贝文件的状态信息,包括mode,atime,ctime,flags等
  5. shutil.copy(src,dst)                         拷贝文件和权限,src和dst都是文件
  6. shutil.copy2(src,dst)                       拷贝文件和状态,src和dst都是文件
  7. shutil.copytree(src,dst)                   递归拷贝文件
  8. shutil.rmtree(path)                          递归删除文件
  9. shutil.move(src,dst)                        递归移动文件

subprocess模块

直接运行推荐使用run方法,如果使用更高级的可以直接使用popen接口;如果想得到程序运行结果,推荐使用getstatusoutput(cmd)

  1. subprocess.run(args, *, stdin=none, input=none, stdout=none, stderr=none, capture_output=false, shell=false, cwd=none, timeout=none, check=false, encoding=none, errors=none, text=none, env=none, universal_newlines=none)
    1. args:标示要执行的命令,必须是一个字符串,字符串参数需要是列表形式,如果shell参数这只为true,那么可以将参数和命令放到一个字符串中,因为它是通过系统的shell执行
      1.   比如:如果有参数,必须是["ls","-al"],没有参数可以写"ls";如果shell为true,可以写成“ls -a
    2. stdin、stdout 和 stderr:子进程的标准输入、输出和错误。其值可以是 subprocess.pipe、subprocess.devnull、一个已经存在的文件描述符、已经打开的文件对象或者 none。subprocess.pipe 表示为子进程创建新的管道。subprocess.devnull 表示使用 os.devnull。默认使用的是 none,表示什么都不做。另外,stderr 可以合并到 stdout 里一起输出。
    3. timeout:设置命令超时时间。如果命令执行时间超时,子进程将被杀死,并弹出 timeoutexpired 异常。
    4. check:如果该参数设置为 true,并且进程退出状态码不是 0,则弹 出 calledprocesserror 异常。
    5. encoding: 如果指定了该参数,则 stdin、stdout 和 stderr 可以接收字符串数据,并以该编码方式编码。否则只接收 bytes 类型的数据。
    6. shell:如果该参数为 true,将通过操作系统的 shell 执行指定的命令。
  2. subprocess.getstatusoutput(cmd)       返回值是一个二元元组,第一个是exitcode(0代表运行成功,其他代表失败),第二个是运行cmd返回的结果
    1. 类似的还有一个函数subprocess.getoutput(cmd)   只返回运行的结果

剩余部分请参考: