模块

re模块:

    python中正则表达式的模块,正则就是根据一系列表示特殊的字符串在一堆字符串中来匹配出符合规定的字符串

    re.findall()寻找所有的字符串:

    re.findall()内跟正则表达式和要查找的对象

    \w,匹配字符串中所有的字母数字下划线

    \W与\w相反

    \s匹配所有空白符  即空格换行等

    \S与\s相反

    \d匹配所有的数字

    \D与\d相反

    \A匹配开头

    *匹配左边的条件不限位数

    $匹配结尾

    .任意字符

    []匹配【】内任意字符

    {}可以指定符合左边条件时向后取的位数

    +匹配符合左边条件的向后取任意位数但是最少取一位

    ?与+相同  但是在与其他正则表达式一起运用的时候是表示

json,pickle,shelve模块是序列化与反序列化的一种工具

    什么是反序列化?

    序列化就是将程序运行到某一刻的数据转换成一种中间格式存储到硬盘中

    反序列化就是将硬盘中的中间格式重新提取出来

    json仅支持python中常用的数据类型,

    json 的dump()方法来进行序列化    load()进行反序列化

    pickle模块也是进行反序列化,与json不同的是pickle可以支持python全部的数据类型  但是不支持跨平台,

    使用方法也是dump() load()不过pickle使用的是rb模式来读取文件

    shelve:也是序列化反序列化不支持跨平台   不过shelve 使用起来更加简单  使用 shelve.open()方法来打开文件获取到一个对象,然 后使用在字典中添加新值的方式来在文件中添加数据最后也要使用close() 方法来关闭文件回收资源

    python中还有一种存放数据的方式  xml  同样可以跨平台使用不过是用稍微麻烦  xml文件使用<>节点的方式来对数据进行存储    一个节点可以包含多个子节点,tag是节点名,attrib是节点元素,text是节点内容

import xml.etree.ElementTree as te

tree = te.parse('文件位置')

root = tree.getroot()

获取根节点

查找结点可以使用iter()来对文件进行全局查找  也可以使用find   findall   find找到第一个子节点是就会返回不再查找  而findall是查找符合条件的所有节点  同样的xml也是文件也可以支持for循环遍历文件

for info in root:

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

for info in root.iter('需要搜索的节点名'):

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

for info in root.findall('需要搜索的节点名'):

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

print(root.find('节点名').text)


修改方式则和读写文件相似

使用遍历或者搜索的方法来搜索要修改的节点  , 然后修改要修改的值后使用获的到的  对象.write('要写入的文件位置')来选择对文件的覆盖或者另存


shutil模块是对文件的复制及常用的压缩打包

    shutil.cpoy()复制文件权限及文件内容

    shutil.copyfileobj(要复制的文件的文件对象,要复制到的文件的文件对象) 只复制文件内容

    shutil.copymode()复制文件的组用户等信息

    shutil.copystat()复制文件的信息

    shutil.copy2() 拷贝文件状态和文件内容

    shutil.copytree()递归拷贝文件夹 参数ignore= shutil.ignore_patterns()  忽略的文件对象

    shutil.removetree()递归的删除文件家ignore = shutil.ignore_partterns() 忽略的删除对象

    shutil.make_archive('要压缩的文件路径',‘压缩的格式’,‘压缩到的文件夹默认为当前文件夹’)

    shutil.make_archive  实际上是调用了  zipfile和tarfile



zipfile 与  tarfile

z = open('要压缩到的路径',‘w打开模式’)

z.write('要压缩的文件路径')

z.close()  关闭文件回收资源

 r = open('压缩文件路径',‘r打开模式’)

z.extractall(path = '解压到的文件路径')

z.close()

tarfile与zipfile相同


time与datetime模块

    时间分为时间戳   和格式化时间字符串   时间对象


        time.strftime('格式化时间字符串格式')将一个时间对象转换成指定的时间字符串格式

        time.strptime()  将一个格式化的时间字符串转换成为时间对象 (%a%d%b  %H%M%S  %Y)的格式

        time.mktime()将一个时间对象转换为时间戳

        time.localtime()将时间戳时间转换成时间对象

        time.gmtime()将一个时间戳转换成时间对象  使用的是格林尼治时间

    

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

        datetim.timedelta() 时间的加减          datetime.datetime.now() - datetim.timedelta(day=3) 获取三天之前的时间

        fromtimestamp() 直接从时间戳获取格式化的时间


        hashlib模块

        获取数据的hashcode hash算法具有三个特征只要数据值一样计算出来的hashcode值就相同  hashcode值不会随着文件的增大而变长   hashcode不能够反解   但是还是可以通过撞库来对hashcode进行反检

        a = hashlib.md5() 获取一个MD5算法计算得到的hash值   

        a.update() 向hash对象提供值

        a.hexdigest()  获取hash值


        hmac模块

        对加密的内容进行加盐

        a = hmac.new('加盐的内容')

        a.update('加密的内容')

        a.hexdigest()  获取hash值

        

        os模块, 是对系统文件的基本操作

        os.path.join()   拼接文件路径

        os.path.isfile()  是否文件且存在

        os.path.isdir()    是否文件夹且存在

        os.path.exists()   是否存在

        os.path.getsize()   获取文件大小

        os.path.getstat()   获取信息

        os.system     执行shell命令

        os.dirlist()     获取文件夹下所有子文件目录

        os.sep    返回系统文件路径分割符

        os.getcwd()   获取当前工作文件位置

        os.chdir()    更换文件夹

        os.pardir()   查看父目录

        os.curdir()    查看当前文件夹

        os.path.split()   将文件路径中的文件与路径分开






        



    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值