欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  本文主要介绍模块列表如下:
 
  os
 
  sys
 
  re
 
  time
 
  datetime
 
  random
 
  shutil
 
  subprocess
 
  os模块
 
  os.getcwd()获取当前工作目录
 
  os.chdir("/path/to")将目录切换到/path/to目录,等价于shell中的cd命令
 
  os.makedirs('path1/path2')创建多层目录(可以多层目录同时不存在),相当于shell中的mkdir-p命令
 
  os.removedirs("path1/path2")删除空目录,如果目录不空就会报错,首先删除path2目录,如果path1也变成空目录了,也会删除path1,知道所给目录的第一层(即示例中的path1)停止
 
  os.mkdir("path")创建单层目录path,相当于shell中的mkdir,注:path目录所在的上一层目录必须已经存在
 
  os.rmdir("path")删除单层目录path,相当于shell中的rmdir
 
  os.listdir("path")列出指定目录下的所有文件和子目录,包括隐藏文件,返回值是列表
 
  os.remove("file")删除单个文件
 
  os.rename("a","b")重命名(文件或目录)
 
  os.stat("a")获取a(文件或目录)的所有信息:返回值是一个os.stat_result类
 
  os.system("shellcommand")运行shell命令,直接显示运行结果,返回值是程序执行成功的code,非shell运行结果的返回值,0代表成功,非0失败
 
  os.path下方法
 
  os.path.abspath(path)返回path的绝对路径
 
  os.path.realpath(path)返回path的绝对路径,和abspath不同的是,如果path是一个连接,返回的是path所连接的绝对路径
 
  oa.path.split("path")将path分割成目录和文件名,返回值是二元的元祖
 
  os.path.dirname("path")返回path所在的目录
 
  os.path.basename("path")返回path文件名
 
  os.path.exists("a")如果a存在,返回True;如果a不存在,返回False;a可以是文件也可以是目录
 
  os.path.isabs("path")如果path是绝对路径,返回True
 
  os.path.isfile("path")如果path是一个存在的文件,返回True。否则返回False
 
  os.path.isdir("path")如果path是一个存在的目录,则返回True。否则返回False
 
  os.path.join(path1[,path2[,...]])将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
 
  os.path.getsize("a")返回a的大小(如果a是文件,就是文件大小;如果a是目录,则是目录内inode列表所占空间,而不是目录内文件所占的空间大小;如果a是符号链接,是指链接文件的路径名的字节数)
 
  os.path.getatime("a")返回a所指向的文件或者目录的最后访问时间
 
  os.path.gettime("a")返回a所指向的文件或者目录的最后权限修改时间
 
  os.path.getmtime("a")返回a所指向的文件或者目录的最后内容修改时间
 
  没有小括号
 
  os.curdir返回值是".",即当前目录的相对路径,注意:没有小括号
 
  os.pardir返回值是"..",即上一层目录的相对路径,注意:没有小括号
 
  os.sep输出操作系统的路径分隔符,win下为"\\",Linux下为"/",没有小括号
 
  os.linesep输出当前操作系统的行终止符,win下为"\t\n",Linux下为"\n",没有小括号
 
  os.pathsep输出当前操作系统用于分割文件路径的字符串,没有小括号
 
  os.name输出当前使用平台,win->'nt';Linux->'posix'
 
  os.environ获取系统环境变量,返回值是一个类,可以通过返回值的各种方法调用里面的值
 
  sys模块
 
  sys.argv命令行list数据,第一个元素是程序本身
 
  sys.exit(a)退出程序,如果a是假则正常退出,如果真,则异常退出,并返回a(假可以是0,False,空字符串等;真则不是空的数据)
 
  sys.version打印python解释程序的版本
 
  sys.path返回模块的搜索路径,它对应的是一个list类型,可以通过list的方法进行修改
 
  sys.platform返回操作系统的名称
 
  sys.stdout.write("a")标准输出打印a(对应的还有stderr)
 
  re模块
 
  re模块的函数介绍
 
  re.match(pattern,string)从头开始匹配
 
  re.search(pattern,string)匹配(如果pattern增加了^,就和match功能一样)
 
  re.findall(pattern,string)把所有匹配到的字符以list形式返回
 
  re.split(pattern,string)将string按照pattern分割,返回列表,列表中的元素不包含pattern
 
  re.sub(pattern,replace,string)将string中的pattern替换成replace
 
  正则表达式符号含义
 
  "."默认匹配除\n之外的任意一个字符,若指定flagDOTALL,则匹配任意字符,包括换行
 
  "^"匹配字符开头,若指定flagsMULTILINE,这种(r"^a","\nabc\neee",flags=re.MULTILINE)也可以匹配上(不指定flags,"\nabc\neee"就是一行)
 
  "$"匹配字符结尾,若指定flagsMULTILINE,这种("foo$","bfoo\nsdfsf",flags=re.MULTILINE)也可以匹配上,同上
 
  "*"匹配*号前的字符0次或多次
 
  "+"匹配前一个字符1次或多次
 
  "?"匹配前一个字符0次或1次
 
  "{m}"匹配前一个字符m次
 
  "{m,n}"匹配前一个字符m到n次(即最少m次,最多n次)
 
  "|"匹配|左或|右的字符
 
  "(...)"分组匹配,分组的顺序:从左到右,从外到内
 
  分组还可以细分,普通分组,命名分组,后向引用,前向肯定断言,后向肯定断言,前向否定断言、后向否定断言
 
  普通分组,则是通过1,2.....来获取匹配到信息,如re.search(r"(abc)","abcdefg").group(1)
 
  命名分组,则是通过给分组命名来获取匹配到的信息,如(?P<name>正则表达式),这里的命名就是name,通过groupdict("name")函数获取捕获值
 
  其他用的不多
 
  [...]匹配中扩内的人一个字符,如果中括号前加^(即[^]),代表匹配非中括号内任一个字符
 
  "\A"只从字符开头匹配,re.search("\Aabc","alexabc")是匹配不到的
 
  "\Z"匹配字符结尾,同$
 
  "\d"匹配数字[0-9]
 
  "\D"匹配非数字
 
  "\w"匹配[A-Za-z0-9]
 
  "\W"匹配非[A-Za-z0-9]
 
  "\s"匹配空白字符、\t、\n、\r
 
  "\S"匹配\s的补集
 
  \d和\D,\w和\W,\s和\S每一对都是对方的补集,一起可以组成全部的字符
 
  time模块
 
  在time模块中有3中标示时间的方式:1.时间戳,2.格式化的时间字符串,3.元祖(struct_time,有9个元素)
 
  UTC(CoordinatedUniversalTime,协调世界时),世界标准时间,中国是UTC+8;DST(DaylightSavingTime)夏令时
 
  时间戳(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
 
  time.time()当前的时间,类型是时间戳(timestamp)
 
  time.sleep(timestamp)程序睡眠,单位秒
 
  time.gmtime([timestamp])类型为struct_time;不传递参数,当前utc的时间;如果传递参数,则为从1970年1月1日0:00:00经过timestamp时间后的utc时间
 
  time.localtime([timestamp])类型为struct_time;不传参数,是当前本地的时间;如果传递参数,则为从1970年1月1日0:00:00经过timestamp时间后的本地时间
 
  time.asctime([struct_time])类型为字符串,格式为"'WedJul1708:40:402019'"”;不传递参数,解析当前时间;传递参数,解析参数时间
 
  time.ctime([timestamp])类型为字符串,格式为"'WedJul1708:40:402019'"”;不传递参数,解析当前时间;传递参数,解析参数时间(和上面不同给的是传递参数类型不同)
 
  time.strptime(string,format)返回struct_time类型,将string按照format解析,format格式下面介绍
 
  time.strftime(format[,tuple]返回字符串,将时间按照format形式转换为字符串格式,没有指定tupletime,则默认使用localtime
 
  %y两位数的年份表示(00-99)
 
  %Y四位数的年份表示(000-9999)
 
  %m月份(01-12)
 
  %d月内中的一天(0-31)
 
  %H24小时制小时数(0-23)
 
  %I12小时制小时数(01-12)
 
  %M分钟数(00-59)
 
  %S秒(00-59)
 
  %a本地简化星期名称
 
  %A本地完整星期名称
 
  %b本地简化的月份名称
 
  %B本地完整的月份名称
 
  %c本地相应的日期表示和时间表示,返回和time.ctime一样
 
  %j年内的一天(001-366)
 
  %p本地A.M.或P.M.的等价符
 
  %U一年中的星期数(00-53)星期天为星期的开始
 
  %w星期(0-6),星期天为星期的开始
 
  %W一年中的星期数(00-53)星期一为星期的开始
 
  %x本地相应的日期表示
 
  %X本地相应的时间表示
 
  %Z当前时区的名称#乱码
 
  %%%号本身
 
  datetime模块
 
  datetime.dateime.now()返回当前时间,类型是datetime.datetime,
 
  datetime.timedelta()这个函数不单独使用,要配合now函数,对时间进行加减,比如:datetime.dateime.now()+datetime.timedelta(-3)
 
  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模块
 
  random.random()返回浮点型数字,区间为[0.01)---不包含1
 
  random.uniform(a,b)返回浮点型数字,可自定义区间,[a,b)
 
  random.int(a,b)返回整数,区间为[a,b]
 
  random.randrange(a,b)返回整数,区间[a,b)区间性质和range函数一样
 
  random.choice(seq)返回seq中的一个元素
 
  random.shuffle(x)对x重新洗牌,即打乱顺序,x是一个列表
 
  shutil模块shutil
 
  高级的文件,文件夹处理
 
  shutil.copyfilebj(src,dst)拷贝文件对象,src和dst必须是文件句柄(即open后的文件句柄)
 
  shutil.copyfile(src,dst)拷贝文件,src和dst是文件名称(调用copyfilebj来实现的)
 
  shutil.copymode(src,dst)拷贝文件权限,内容、组、用户均不变,src和dst都是文件,且必须存在
 
  shutil.copystat(src,dst)拷贝文件的状态信息,包括mode,atime,ctime,flags等
 
  shutil.copy(src,dst)拷贝文件和权限,src和dst都是文件
 
  shutil.copy2(src,dst)拷贝文件和状态,src和dst都是文件
 
  shutil.copytree(src,dst)递归拷贝文件
 
  shutil.rmtree(path)递归删除文件
 
  shutil.move(src,dst)递归移动文件
 
  subprocess模块
 
  直接运行推荐使用run方法,如果使用更高级的可以直接使用Popen接口;如果想得到程序运行结果,推荐使用getstatusoutput(cmd)
 
  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)
 
  args:标示要执行的命令,必须是一个字符串,字符串参数需要是列表形式,如果shell参数这只为true,那么可以将参数和命令放到一个字符串中,因为它是通过系统的shell执行
 
  比如:如果有参数,必须是["ls","-al"],没有参数可以写"ls";如果shell为True,可以写成“ls-a”
 
  stdin、stdout和stderr:子进程的标准输入、输出和错误。其值可以是subprocess.PIPE、subprocess.DEVNULL、一个已经存在的文件描述符、已经打开的文件对象或者None。subprocess.PIPE表示为子进程创建新的管道。subprocess.DEVNULL表示使用os.devnull。默认使用的是None,表示什么都不做。另外,stderr可以合并到stdout里一起输出。
 
  timeout:设置命令超时时间。如果命令执行时间超时,子进程将被杀死,并弹出TimeoutExpired异常。
 
  check:如果该参数设置为True,并且进程退出状态码不是0,则弹出CalledProcessError异常。
 
  encoding:如果指定了该参数,则stdin、stdout和stderr可以接收字符串数据,并以该编码方式编码。否则只接收bytes类型的数据。
 
  shell:如果该参数为True,将通过操作系统的shell执行指定的命令。
 
  subprocess.getstatusoutput(cmd)返回值是一个二元元组,第一个是exitcode(0代表运行成功,其他代表失败),第二个是运行cmd返回的结果
 
  类似的还有一个函数subprocess.getoutput(cmd)只返回运行的结果
 
  剩余部分请参考:python内置模块介绍(二)

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h54857.shtml