• Python学习笔记十一:模块


    标准库(内置模块)

    time与datetime 模块

    时间表示方式

    1.时间戳

    2.格式化的字符串

    3.元组形式

    时间戳就是一个秒数

    x=time.time(),从1970年1月1日0时0分0秒到现在的秒数

    x/3600/24/365:年数,1970+年数,今年(近似)

    time.struct_time():dst时区,0代表不是夏令时

    time.timezone:时区

    time.altzone:夏令时时区

    time.daylight:是否夏令时

    time.time():时间戳

    time.sleep(i):睡眠,秒

    time.gmtime([seconds]):传入时间戳,转换为元组(tuple)格式,转换成UTC格式时间

    x=time.localtime([seconds]):转换为本地时间

    x.tm_year,x.tm_mon……

    time.mktime([):转换成时间戳形式

    time.strftime():格式化为字符串

    time.strptime():字符串转换为time

    time.asctime():将元组时间转换为字符串

    time.ctime():将时间戳转换为字符串

    datetime.datetime.now():获取当前时间

    datetime.datetime.now()+datetime.timedelta(3):3天后,datetime.timedelta()不能单独使用,必须与now一起使用

    datetime.datetime.now()+datetime.timedelta(hours=3)

    random模块

    random.random():随机浮点数,[0,1)

    random.randint(1,3):[1,3]

    random.randrange(1,3):[1,3)

    random.choice(“hello”):字符串、列表、元组参数

    random.sample(“hello”,2):区间为2

    random.uniform(1,10):1到10之间的浮点数,[1,10)

    random.shuffle([]):打乱列表顺序(洗牌)

    os模块

    模拟操作系统的操作指令

    os.getcmd():获取当前的操作目录(pwd)

    os.chdir(目录):修改目录,os.chdir(r”C:Users”),r取消转义符

    os.curdir:返回当前目录

    os.pardir:返回上级目录

    os.makedirs(r”C:acd”):递归创建目录,没有a,b,c目录也可以创建

    os.removedir(r”C:acd”):递归删除目录,只能删除空文件夹

    os.mkdir(‘dirname’):创建单级目录

    os.rmdir(‘dirname’):删除单级目录,最后一级目录

    os.listdir(‘dirname’):列出目录下内容,列表形式

    os.remove():删除文件

    os.rename(‘oldname’,’newname’):文件改名

    os.stat(r’file’):查看文件/目录信息

    os.sep:输出操作系统特定的路径分隔符

    os.linesep:输出当前操作系统使用的行终止符

    os.pathsep:输出用于分割文件路径的字符串,windows为”;”,例如环境变量中path的分隔符

    os.name:输出当前系统平台

    os.system(‘bash command’):执行当前系统命令

    os.envron:获取环境变量,字典形式

    os.path.abspath():获得当前绝对路径

    os.path.split(path):将path分割成目录和文件名,返回二元元组

    os.path.dirname(path):获得当前路径的目录

    os.path.basename(path):返回根路径

    os.path.exists(path):判断路径是否存在

    os.path.isabs(path):是否绝对路径

    os.path.isfile(path):是否文件

    os.path.isdir(path):是否目录

    os.path.join(path1[,path2[,…]]):合并路径

    os.path.getatime(path):返回path所指向文件或目录的最后存取时间

    os.path.getmtime(path):返回path所指向文件或目录的最后修改时间

    sys模块

    sys.argv:命令行参数list,第一个元素是程序本身路径

    sys.version:退出程序,0为正常退出

    sys.exit(0):获取Python解释程序的版本信息

    sys.path:返回模块搜索路径,初始化时使用PYTHONPATH环境变量的值

    sys.maxint:最大int值

    sys.stdout.write(“please:”):

    val = sys.stdin.readline()[:-1]

    shutil模块

    用来拷贝文件,压缩包

    shutil.copyfileobj(src,dst[,length]):需要自己打开文件

    shutil.copyfile(src,dst):输入文件路径即可

    shutil.copymode(src,dst):仅拷贝权限,内容、组、用户均不变

    shutil.copystat(src,dst):拷贝权限

    shutil.copy(src,dst):拷贝文件和权限

    shutil.copy2(src,dst):拷贝文件和信息

    shutil.copytree(src,dst):拷贝目录及里面所有内容

    shutil.rmtree(src):删除目录

    shutil.move(src,dst):移动文件

    shutil.make_archive(base_name,format,…):

    base_name:压缩包名(可以包含路径)

    format:压缩包类型,zip,tar,bztar,gztar

    root_dir:要压缩的文件夹路径

    owner:用户,默认当前

    group:组,默认当前

    logger:记录日志

    zipfile模块

    z = zipfile.ZipFile(name,”w”)

    z.write(…)

    z.clost()

    json、pickle、shelve模块

    序列化

    将简单的k,v通过文件持久化,可支持pickle支持的python的数据格式

    多次dump和load

    d = shelve.open(file):打开一个文件

    d[key]=v

    d[key2]=v2

    d.close()

    d.get(key)

    d.items()

    xml处理

    import xml.etree.ElementTree as ET

    tree = ET.parse(xmlfile)

    root = tree.getroot() #内存对象

    print(root.tag) #根标签

    # 遍历

    for child in root:

    print(child.tag, chile.attrib)

    for I in child:

     print(i.tag, i.text,i.attrib)

    for node in root.iter(‘year’):

    print(node.tag,node.text)

    // update and insert

    for node in root.iter(‘year’):

    new_year=int(node.text)+1

    node.text=str(new_year)

    node.set(“updated”,”yes”)

    tree.write(xmlfile)

    //delete

    for country in root.findall(‘country’):

    rank = int(country.find(‘rank’).text)

    if rank > 50:

        root.remove(country)

    tree.write(xmlfile)

    //create xmlfile

    ET.Element(str):根节点

    ET.SubElement(parent,str,attrib={})…

    PyYAML模块

    处理yaml文档

    导入一个模块,使用load加载为字典数据

     

    configparser模块

    import configparser

    config = configparser.ConfigPareser()

    config是一个字典

    config.write(configfile)

    config.read(configfile)

    config.defaults

    config.sections()

    config.remove_section(node)

    hashlib模块

    用来hash密码,md5等,提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法

    m=hashlib.md5()

    m.update(byte)

    m.update(byte2)

    print(m.hexdigest()) #十六进制格式,是将bstr+bstr2两个拼起来的格式

    #双重加密,消息加密

    import hmac

    h = hmac.new(bkey,bmessage)

    print(h.digest()) #s十进制格式

    中文必须转换成byte格式,中文.encode(encoding=”utf-8)

    Subprocess模块

    调用Linux命令

    logging模块

    logging.warning(str)

    logging.critical(str)

    info,debug,error

    info,debug默认不打印,使用类似开关的方式确定是否输出

    longing.basicConfig(file=a_file,leval=logging.DEBUG)

    longing.basicConfig(file=a_file,leval=logging.DEBUG,format = “%(asctime)s %(message)s”, datefmt=”%m/%d/%Y %I:%M:%S %p))

    通过各种参数输出调用的模块名、文件名、函数名、行、时间等,实现系统的调试功能

    logger:为每种输出logger起一个名字

    handler:确定输出位置

    formatter:确定输出格式

    同时输出到不同的位置

    LOG=logging.getLogger(name)

    LOG.setLevel(logging.DEBUG)

    stream=logging.StreamHandler()

    stream.setLevel(level)

    stream_formatter=logging.Formatter(formatter)

    stream.setFormatter(stream_formatter)

    fileHandler=logging.FileHandler(file)

    fileHandler.setLevel(level)

    fileHandler_formatter=logging.Formatter(formatter)

    fileHandler.setFormatter(fileHandler_formatter)

    LOG.addHandler(stream)

    LOG.addHandler(fileHandler)

    LOG.error(message)

    LOG.debug(message)

    根据时间或文件大小切割日志文件

    logging.handles.TimedRotatingFileHandler

    logging.handlers.RotatingFileHandler

    根据时间切割日志文件

    logging.setLevelName

    Re模块

    正则表达式

    import re

    a=re.match(formatter,str):从头开始匹配

    a.group():结果

    a.groups():生成元组

    “.”:匹配除 之外的任意一个字符,

    “^”:匹配字符开头

    “+”:匹配前一规则一次或多次

    “*”:匹配前一规则0次或多次

    “?”:匹配前一规则1次或0次

    “{m}”:匹配前一规则m次

    “{n,m}”:匹配前一规则n到m次

    “|”:匹配|左或|右的字符

    “(…)”:分组匹配

    “A”:只从字符开头匹配

    “”:匹配字符结尾,同$

    “d”:匹配0-9数字

    “D”:匹配非数字

    “w”:匹配A-Za-z0-9字符

    “W”:匹配非A-Za-z0-9

    “s”:匹配空白字符

    “(?P<name>…)”:分组匹配,使用groupdict()按name生成字典

    是一个转义符,后跟规则,表示是按规则搜索不是只特定字符

    re.search(formatter,str):搜索

    re.findall(formatter,str):生成所有符合规则的内容

    re.split(formatter,str):以匹配字符分割列表

    re.sub(formatter,repl,str,count=?,flag=?):以匹配字符替换

    \\匹配一个

    flags:

    re.I(re.IGNORECASE):忽略大小写

    M(MULTILINE):多行模式

    S(DOTALL):点任意匹配模式

  • 相关阅读:
    forward和redirect的区别
    转 jsp中 session的简单用法
    20_学生选课数据库SQL语句练习题1
    _学生选课数据库SQL语句练习题
    输入输出2
    接口提
    输入输出流3
    获取当前时间并显示在网页上
    简单的权限管理
    java关于时间
  • 原文地址:https://www.cnblogs.com/koctr/p/7473932.html
Copyright © 2020-2023  润新知