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

  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. 第十一周助教工作总结——NWNU李泓毅

    助教博客链接:https://www.cnblogs.com/NWNU-LHY/ 本次作业的要求:原型设计:https://www.cnblogs.com/nwnu-daizh/p/10761596. ...

  2. 【阿里云IoT+YF3300】9.快速开发modbus设备驱动

    Modbus是一种串行通信协议,是莫迪康公司为PLC(编程逻辑控制器)通信而设计的协议.Modbus目前已经成为工业领域通信协议的业界标准,大部分的仪器仪表都支持该通信协议.很早以前就开发过基于Mod ...

  3. sysfs 控制gpio

    按照下面的命令点亮及熄灭LED pi@raspberrypi:/sys/class/gpio $echo 26 > exportpi@raspberrypi:/sys/class/gpio $ ...

  4. SpringBoot访问不了JSP但却能进入后台

    博主在使用sring-boot跳转HTML页面后,由于好奇心就想跳转到JSP页面,就在网上搜相关信息,结果不是跳转500错误就是下载JSP文件.各种坑啊,在博主跳了N多坑后,终于跳转JSP页面成功.故 ...

  5. GridLayout: GridLayout使用简介(转)

    Android 布局之GridLayout 1 GridLayout简介 GridLayout是Android4.0新提供的网格矩阵形式的布局控件. GridLayout的继承关系如下:java.la ...

  6. Visual Studio 2019更新到16.1.6

    Visual Studio 2019更新到16.1.6 此次更新主要是修复几个安全漏洞,如CVE-2019-1077(VS自动更新漏洞).CVE-2019-1075(ASP.net Core欺骗漏洞) ...

  7. c++ 网络编程基础

    目录 c++ 网络编程 建立socket 绑定socket 建立连接 监听 服务器端接收 数据发送和接收 面向连接的数据发送 面向连接的数据接收 无连接的数据发送 无连接的数据接收 关闭socket ...

  8. js 跳转到 百度指定地址定位点

    js 跳转到 百度指定地址定位点 http://api.map.baidu.com/geocoder?address=北京市海淀区上地信息路9号奎科科技大厦&output=html&s ...

  9. 美国gfs数据介绍和解析

    最近有个项目需要开发个气象信息API,可以通过经纬度查找未来几天的气象信息. 经过几天的研究,现在简单总结一下. 1.数据来源数据来源采自美国国家环境预报中心的GFS(全球预报系统),该系统每天发布4 ...

  10. MongoDB数据表添加字段

    db.tshare_a.insert( { "_id" : ObjectId("57172b0f657f8bbb34d70147"), "picUrl ...