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

  1. os
  2. sys
  3. re
  4. time
  5. datetime
  6. random
  7. shutil
  8. 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

  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(日历)模块,详细见:https://docs.python.org/3/library/calendar.html

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)   只返回运行的结果

剩余部分请参考:python内置模块介绍(二)

python内置模块介绍(一)的更多相关文章

  1. python内置模块collections介绍

    目录 python内置模块collections介绍 1.namedtuple 2.deque 3.defaultdict 4.OrderedDict 5.ChainMap 6.Counter 7.小 ...

  2. python内置模块(4)

    这一部分是python内置模块系列的最后一部分,介绍了一些小巧有用的内置模块. 目录: 1.random 2.shelve 3.getpass 4.zipfile 5.tarfile 6.bisect ...

  3. python内置模块[re]

    python内置模块[re] re模块: python的re模块(Regular Expression正则表达式)提供各种正则表达式的匹配操作,在文本解析.复杂字符串分析和信息提取时是一个非常有用的工 ...

  4. python 内置模块续(二)

    目录 python 内置模块补充 1.hashlib模块 简易使用: 高级使用: 进阶使用: 加盐处理: 校验文件一致性 2.logging日志模块 日志等级 常用处理 "四大天王" ...

  5. 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)

    Python入门介绍 一,Python的基本介绍 (1)概要 Python是一种解释型,面向对象,动态数据类型的高级程序设计语言.常被广泛用于处理系统管理任务和web编程.现如今Python已经成为了 ...

  6. 【转】Python Twisted介绍

    Python Twisted介绍 作者:Jessica McKellar 原文链接 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开 ...

  7. 【美妙的Python之中的一个】Python简单介绍及环境搭建

    美妙的Python之Python简单介绍及安装         简而言之: Python 是能你无限惊喜的语言,与众不同.             1.Python:                  ...

  8. python模块介绍- multi-mechanize 性能测试工具

    python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...

  9. python模块介绍- xlwt 创建xls文件(excel)

    python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...

随机推荐

  1. 利用原生JS实时监听input框输入值

    传送门https://www.cnblogs.com/lantinggumo/p/7636715.html 传送门https://www.cnblogs.com/nailc/p/8572226.htm ...

  2. CSS(1)

    使用CSS的注意点: 1.style标签必须写在head标签的开始标签和结束标签之间(也就是必须和title标签是兄弟关系). 2.style标签中的type属性其实可以不用写,默认就是type=&q ...

  3. 范仁义html+css课程---1、html基本结构

    范仁义html+css课程---1.html基本结构 一.总结 一句话总结: html标签中包含head标签和body标签,head标签里面主要写用户不可见的内容,比如字符集编码,body标签里面主要 ...

  4. 新零售下的 AI智能货柜

    公司有个智能货柜,通过微信扫码开门,拿货,自动扣款,挺智能的.还不错.研究一下原理,网上查了一下. 文章简介: 目前新零售风刮的蛮大,笔者进入该领域近一年,负责过无人便利店.智能货柜.智慧商超等产品, ...

  5. 常忘知识点三-使用选择器继承来精简CSS --- @extend

    推荐一个很详细的sass教程:https://www.sass.hk/docs/ 在设计网页的时候常常遇到这种情况:一个元素使用的样式与另一个元素完全相同,但又添加了额外的样式.通常会在 HTML 中 ...

  6. window TOMCAT 端口被占用了怎么办?

    查看80端口被哪些程序占用了 netstat -ano|findstr "80" 根据pid(进程id) 查询对应的应用程序 tasklist|findstr "1828 ...

  7. matlab基本函数sort

    一起来学演化计算-matlab基本函数sort 觉得有用的话,欢迎一起讨论相互学习~Follow Me sort 对数组元素排序 语法 B = sort(A) 按照大小不等于1的第一个数组维度对A的元 ...

  8. WAV相关:从PCM16 Little Endian数据转WAV文件

    数据格式 [0.0, -0.0, -0.0, 0.0, 0.0, 0.0, 5.960464477539063e-08, 5.960464477539063e-08, 1.19209289550781 ...

  9. 将WPF转为PDF

    https://blog.csdn.net/xgugu1210/article/details/51878104 https://www.cnblogs.com/zeoy/archive/2013/0 ...

  10. 【 argo 和 kubectl 】

    argo submit --watch xxx.yaml [ --kubeconfig xxx.conf  --namespace xxx ] argo list [ --kubeconfig xxx ...