十四.Python模块续_os_sys_Json_pickle_shelve_xml_re

Python模块续_os_sys_Json_pickle_shelve_xml_re

OS模块

#OS模块
import os
import time

if __name__=="__main__":
    #获取当前目录
    print(os.getcwd())

    #listdir() 遍历目录下的文件
    print(os.listdir(os.getcwd()))

    #abspath  绝对路径
    print(os.path.abspath(os.getcwd()))


    #文件夹与文件合并
    path=os.path.join(os.getcwd(),"os模块.py")
    print(path)

    #文件夹与文件分离
    print(os.path.split(path))

    #返回路径的文件夹部分
    print(os.path.dirname(path))

    #返回路径的文件名
    print(os.path.basename(path))

    #查看文件时间

    #getctime 文件创建时间
    print(os.path.getctime(path))

    #getatime  文件最后访问时间
    print(os.path.getatime(path))

    #getmtime  文件修改时间
    print(os.path.getmtime(path))

    #查看文件大小
    # getisze 获取文件大小
    print(os.path.getsize(path))

    #exists() 查看文件是否存在
    print(os.path.exists(path))



    # print(os.chdir("22.os,sys,json,re模块1"))

    #path获取当前执行文件的路径
    # print(os.path)

    #stat 获取文件的详细信息
    # print(os.stat("json模块.py"))

    #mknod(filname,mode,device)
    #filename -- 创建的文件系统节点
    #mode -- mode指定创建或使用节点的权限, 组合 (或者bitwise) stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK, 和stat.S_IFIFO (这些常数在stat模块). 对于 stat.S_IFCHR和stat.S_IFBLK, 设备定义了 最新创建的设备特殊文件 (可能使用 os.makedev()),其它都将忽略。
    #device -- 可选,指定创建文件的设备
        # import stat
        # os.mknod("b.txt",0600|stat.S_IRUSR)


    #得到系统环境变量列表
    # print(os.get_exec_path())


    #execl 运行文件
    # print(os.execl("C:/Users/admin/AppData/Local/Google/Chrome/Application/chrome.exe","chrome"))


    #递归创建文件夹
    #os.makedirs("a/b/c")

    # removedirs  递归删除文件夹
    # os.removedirs("a/b/c")

    #创建文件夹
    # os.mkdir("a")

    #删除文件夹
    # os.rmdir("a")

    #system("")执行shell语句
    # print(os.system("dir"))


    #exit() 退出程序
    print(os._exit(0))


    #rename
    # os.rename("b.txt","a.txt")


    #remove()  删除文件
    # print(os.remove("a.txt"))


    #   set \
    #   linesep \r\n 换行
    #   extsep   .
    #   pathsep  ;
    print(os.sep)
    print(os.linesep)
    print(os.extsep)
    print(os.pathsep)

SYS模块

#SYS模块
import sys
import os
import time

#sys.path.append()   添加环境到python解释器
sys.path.append(os.getcwd())
print(sys.path)

#sys.stdout.write() 往控制台输入字符,相当于print()
#动态往控制台输入字符
for i in range(100):
    sys.stdout.write(">")
    time.sleep(0.1)
    sys.stdout.flush()
sys.stdout.close()

if __name__=="__main__":

    #sys.argv  接收运行文件时接收的参数  python  sys模块.py  1 2 3 4 5
    args=sys.argv
    for i in args:
        print(i)

    #sys.version   python解释器的版本
    print(sys.version)



#exit(0)  程序退出
# sys.exit(0)





JSON模块

#JSON模块
import json
li={'name':'tom'}

#json是各编程语言之间沟通的媒介,json不支持存储函数数据
if __name__=="__main__":
    #dumps  将python数据转换为标准的json字符串数据
    with open("json","w",encoding="utf-8") as f:
        f.write(json.dumps(li))
    #loads  将字符串json数据转换为python数据
    with open("json","r",encoding="utf-8") as f1:
        ret=f1.read()
        print(ret)
        res=json.loads(ret)
        print(res["name"])

PICKLE模块

#PICKLE模块
import pickle
#pickle 只用于python之间的数据交换,但pickle支持序列化,可以存储的类型更多
li=[{"name":"alex","age":18}]


if __name__=="__main__":
    #dumps 将python数据序列化
    with open("pickle","wb") as f:
        res=pickle.dumps(li)
        print(res)
        f.write(res)

    #loads  将二进制数据反序列化为python数据
    with open("pickle","rb") as f1:
        res=f1.read()
        res=pickle.loads(res)
        print(res[0]["age"])


 

SHELVE模块

#SHELVE模块
import shelve

#shelve  将序列化进行了封装,可以利用面向对象的思想操作shelve

if  __name__=="__main__":
    #基于某个文件为数据源,进行shelve操作
    shel=shelve.open("shelve")

    #.__setitem__  存储键值数据
    shel.__setitem__("name","alex")
    shel.__setitem__("age",18)

    #.__getitem__ 获取键值数据
    print(shel.__getitem__("name"))

    #shel.__contains__(key) 判断shelve是否存在对应的键值
    print(shel.__contains__("name"))

    #shel.__iter__() 获取shelve里的键值队
    print(list(shel.__iter__()))

    #shel.update()更新shelve的数据
    shel.update(age=25)

    #shel.pop(key) 删除对应键的数据
    print(shel.pop("name"))

    #shel.clear()  清空shelve所有数据
    #print(shel.clear())

    #items() 获取shelve里的键值队
    print(list(shel.items()))

    #values()  获取shelve里所有的键
    print(list(shel.keys()))
    #values()  获取shelve里所有的值
    print(list(shel.values()))

 XML模块

#XML模块
import xml.etree.ElementTree as ET

#XML 操作xml资源的模块

if __name__=="__main__":
    #parse(source)  解析xml文件资源
    data=ET.parse("data.xml")
    #getroot() 获取xml的根节点
    res=data.getroot()
    #循环根节点下面的节点
    for i in res:
        #tag  获取标签名
        print(i.tag)
        #attrib  获取标签的属性
        print(i.attrib)
        # find查找节点下的rank的元素
        print(i.find("rank").text)
        #get 获取该标签的属性
        print(i.get("name"))
        for node in i:
            #text  读取标签的文本值
            print(node.tag,node.text)
            if(node.text.startswith("太平洋")):
                print("login in...")
                #修改标签文本
                node.text="北冰洋"
    # write()将修改写入到文件
    data.write("data.xml",encoding="utf-8")







 

RE模块

#RE模块
import re

# 正则表达式   对字符串进行操作的模块
#  . ^ $ * + ?
    # .可以匹配所有
    # ^ 表示字符串的开头
    # $ 表示字符串的尾部
    # *  ->  0,+00
    # + ->   1,+00
    # ? ->   0,1
if __name__=="__main__":
    # ... 每个.代表一个字母
    res=re.findall("...","abc")
    print(res)
    # ^ 匹配只以字符串开头
    res=re.findall("^..","bca")
    print(res)
    #   $ 匹配只以字符串结尾
    res=re.findall("..$","123erwrw")
    print(res)
    # * 匹配 0至无穷
    res=re.findall(".*","asfdasd1312312")
    print(res)
    # + 匹配 0至无穷
    res=re.findall(".+","a231sdasd1312312")
    print(res)
    # ? 匹配 0或1
    res=re.findall(".?","a231sdasd1312312")
    print(res)


    #  \转义字符

    #  \d  只匹配数字    \D 匹配除数字以外的元素
    res=re.findall("\d+","aaaa13123asda231")
    print(res)

    # \w 只匹配字母数字下划线   \W匹配除数字下划线字母以外的元素
    res=re.findall("\w+","adassd!_asdas_@24sda")
    ret=re.findall("\W+","adassd!_asdas_@24sda")
    print(res,ret)

    # \s 只匹配空格
    res=re.findall("\s","13 3231 4435 5645")
    print(res)

    # [] 里面的元素都是 或的形式存在
    # [-]  -:指从哪到哪,是一个范围
    #[a-z]   [a-zA-z1-9_] 相当于 \w
    res=re.findall("[a-z]+","13asda123ad")
    print(res)

    #  \将特殊字符转换为普通的字符
    res=re.findall("1\.","1.dsasfd3.23123")
    print(res)



猜你喜欢

转载自blog.csdn.net/qq_39663113/article/details/85231732