1. os 即操作系统
    os 中提供了很多关于文件,文件夹,路径处理的函数
    这是我们学习的重点
  2.  
  3. os.path os模块下专门用于处理路径相关的
  4.  
  5. python是一门跨平台语言,由于每个平台路径规则不同
    需要一个模块来使得路径可以自动根据平台进行变化
  6.  
  7. path模块仅仅是对路径(字符串)进行操作 不会直接操作文件
    os.path.abspath #返回一个绝对路径
  8.  
  9. 把路径和最后的文件名/文件夹名单独切出来
    os.path.split
  10.  
  11. os.path.exists #判断路径是否存在
  12.  
  13. isabs#是否是绝对路径 原理是看第一个是不是路径分隔符
  14.  
  15. os.path.join #当前操作系统的分隔符来拼接
  1. # import os
  2. # print(os.getcwd())
  3.  
  4. #修改当前全部工作目录
  5. # os.chdir('test')
  6. # print(os.getcwd())
  7.  
  8. #.代表当前
  9. # print(os.curdir)
  10. #..代表上一级
  11. # print(os.pardir)
  12.  
  13. #创建多级目录 不同平台 路径分隔符不同
  14. # os.makedirs('a\\b\\c\\')
  15.  
  16. #获取当前平台的路径分隔符
  17. # print(os.sep)
  18.  
  19. #使用join拼接路径
  20. # os.makedirs(os.sep.join(['a','b','c']))
  21.  
  22. #会先尝试查找a\b 这个路径 找到以后在里面创建c
  23. # os.mkdir('a/b/c')
  24.  
  25. #目录部位空时 无法删除 需要递归删除
  26. # os.removedirs('a/b/c')
  27.  
  28. #获取目录下的所有文件包括文件夹
  29. # os.listdir(r'.....')
  30. # dir=r'......'
  31. # # li= os.listdir(dir)
  32. # def show_file(path):
  33. # li = os.listdir(path)
  34. # for i in li:
  35. # print(path+'\\'+i)
  36. # #拼接完成路径
  37. # # os.path.isfile(dir+'\\'+i) #判断是否是文件
  38. # # os.path.isdir(dir+'\\'+i)#判断是否是路径
  39. # #如果是文件夹就继续递归
  40. # if os.path.isdir(path+'\\'+i)
  41. # show_file(path+'\\'+i)
  42. # show_file(dir)
  43.  
  44. # os.rmdir 删除单级空目录
  45.  
  46. # os.path.getsize #获取文件大小
  47.  
  48. #直接把执行结果控制到控制台
  49. # os.system('tasklist')
  50.  
  51. #查找文件*****
  52. # BASE_PATH=os.path.dirname(os.path.dirname(__file__))
  53. # LOG_PATH=os.path.join(BASE_PATH)
  54. # print(LOG_PATH)
  55.  
  56. # os.path.gettime 查找文件最后修改时间
  1. pythonjson是一个模块
  2.  
  3. JSON :JavaScript Object Nation js 对象表示法
    当年的HTML独领风骚
    上网大多数情况下指的是打开网页
    浏览器中运行的js语言
    做后台服务器 必须保证你的数据是浏览器(JS)能够看懂的
    js能看懂什么?就是json
    json数据类型与python数据类型的对应关系
    python中的格式 json格式
    字符 字符 必须是双引号
    数字 数字
    字典 字典
    列表 数组
    元组 没有
    集合 没有
  4.  
  5. 使用jsom格式时要注意,最外层只能是一个数据 类型不限
    如果你要一次性存储多个数据,需要使用容器 字典或数组
  6.  
  7. 序列化
    服务器端 需要根据前段的请求 从数据库获取数据 组织成前台可以识别的格式发给前台
    反序列化
    客户端 接受服务器返回的数据 并显示在屏幕上
  8.  
  9. 主要函数:
    序列化
    dump
    dumps
    反序列化
    load
    loads
  10.  
  11. json数据本质就是字符串
    json 最大的优势在于 其实跨平台的数据交换格式,并且非常的轻量级
    并且对比xml 非常轻量级
  1. # import json
  2. # li=['a','b','c']
  3. # with open('DB.json','wt',encoding='utf-8')as f:
  4. # json.dump(li,f)
  5.  
  6. # li=[{'name':'wdj','sex':'male'},{'name':'lx','sex':'male'}]
  7. # with open('DB.json', 'wt', encoding='utf-8')as f:
  8. # json.dump(li, f)
  9. # with open('DB.json', 'rt', encoding='utf-8')as f:
  10. # res=json.load(f)
  11. # print(res)
  1. shelve模块
      也是一个序列化模块
    可以把它看做是一个自带序列化的字典
  1. # import shelve
  2. # s= shelve.open('new.sve')
  3. # print(s)
  4.  
  5. # # 存入数据
  6. # s["name"] = "常委"
  7. # s["age"] = 20
  8. #
  9. # print(s)
  10.  
  11. # 取出数据
  12. # s = shelve.open("new.sve")
  13. # print(s["name"],s["age"],s["sex"])
  1. xml模块
    是什么?
    可扩展标记语言
    xml也是一种文档结构 也是一种序列化方式
    json不同的地方在于 xml可以定义文档的结构 例如在页面中 有页头页尾等..
    语法格式:
    使用标签来描述数据
    <tag></tag>
    通常由一堆标签组成 开始标签和结束标签
    <tag/> 单标签 直接再名字后面加上斜杠结束
  2.  
  3. 一个标签由三个部分组成
    1.标签名
    2.属性
    <tag name='刘xx' age='20'></tag>
    属性名称为name 值为刘xx 注意值必须放在双引号中
    3.文本内容
    <tag>这是文本内容</tag>
  4.  
  5. 标签可以嵌套
    <persons>
    <p name='a'></p>
    <p name='a'></p>
    </persons>
    标签嵌套时 关闭的顺序与打开的顺序 相反
    注意:最外层必须只有一个跟标签
    <info name="self" age="18" sex="woman"/>
  6.  
  7. xml模块的使用
    xml模块的主要功能是 解析xml 即序列化和反序列化
    对于xml格式的数据 一般不会使用代码来生成 更多的是读取xml的文件内容
  1. 主要函数:
    iter
    find
    findall
  1. import xml.etree.ElementTree as ET
  2.  
  3. # ElementTree 文档树 用于读写文件
  4. # Element 一个标签
  5.  
  6. # 解析某个文件
  7. # tree = ET.parse("test.xml")
  8. # 获取根标签
  9. # root = tree.getroot()
  10. # name为新加坡的country改成shanghai
  11.  
  12. # res = root.iter("country")
  13. # for i in res:
  14. # if i.attrib.get("name") == "Singapore":
  15. # i.set("name","shanghai")
  16.  
  17. # 创建一个新标签
  18. # new_tag = ET.Element("我是新标签",attrib={"name":"abc"})
  19. # new_tag.text = "这是文本内容"
  20.  
  21. # 将新标签添加到根标签中
  22. # root.append(new_tag)
  23.  
  24. # 写入文件
  25. # tree.write("test2.xml",encoding="utf-8")
  26.  
  27. # print(root)
  28. # # tag 获取标签名字
  29. # print(root.tag)
  30. # 获取文本
  31. # print(root.text)
  32. # 获取属性 返回一个字典
  33. # print(root.attrib)
  34.  
  35. # 获取子标签(元素,节点)
  36. # iter 在全文范围查找所有名字匹配的
  37. # res = root.iter("country")
  38. #
  39. # print(list(res))
  40.  
  41. # res = root.iter("year")
  42. # for i in res:
  43. # print(i.text)
  44.  
  45. # find 当前标签的子标签 并且只返回第一个
  46. # res = root.find("country")
  47. # print(res)
  48. #
  49. # # 可以一级一级往里找
  50. # res = root.find("country").find("year")
  51. # print(res)
  52. # # print(res.attrib["name"])
  53.  
  54. # findall 当前标签的子标签 并且只返回所有匹配的
  55. # res = root.findall("country")
  56. # print(res[1].tag)
  1. <?xml version="1.0"?>
  2. <data>
  3. <country name="Liechtenstein">
  4. <rank updated="yes">2</rank>
  5. <year>2008</year>
  6. <gdppc>141100</gdppc>
  7. <neighbor name="Austria" direction="E"/>
  8. <neighbor name="Switzerland" direction="W"/>
  9. </country>
  10. <country name="Singapore">
  11. <rank updated="yes">5</rank>
  12. <year>2011</year>
  13. <gdppc>59900</gdppc>
  14. </country>
  15. </data>

test.xml

  1.  

常用模块之 os,json,shelve,xml模块的更多相关文章

  1. 常用模块(random,os,json,pickle,shelve)

    常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...

  2. configparser模块,subprocess 模块,xlrd,xlwt ,xml 模块,面向对象

    1. configparser模块 2.subprocess 模块 3.xlrd,xlwt 4.xml 模块 5.面向对象 面向对象是什么? 是一种编程思想,指导你如何更好的编写代码 关注点在对象 具 ...

  3. python模块--json \ pickle \ shelve \ XML模块

    一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...

  4. day16 常用模块 sys os json pickle

          知识点 os:和操作系统相关sys:和解释器相关 json:和操作JSON(一种数据交换格式)相关pickle:序列化 hashlib:加密算法Collections:集合类型       ...

  5. Py-时间,随机,os,sys,jsonpickle序列化,shelve,xml模块

    内置模块 1.时间模块 第一:time.time()是时间戳 时间戳默认是 从1970年到现在过的秒数,是一个很长的数值它可以做时间的计算以及显示 第二:localtime() 获取当前的时间,按元组 ...

  6. Python学习第十二课——json&pickle&XML模块&OS模块

    json模块 import json dic={'name':'hanhan'} i=8 s='hello' l=[11,22] data=json.dumps(dic) #json.dumps() ...

  7. python 模块二(os,json,pickle)

    #################################总结##################### os常用 os.makedirs('baby/安哥拉/特斯拉/黄晓明') os.mkd ...

  8. day21 pickle json shelve configpaser 模块

    1. 序列化:我们在网络传输的时候,需要我们对对象进行处理,把对象处理成方便存储和传输的格式,这个过程就叫序列化 序列化的方法不一定一样,三十目的都是为了方便储存和传输. 在python中有三种序列化 ...

  9. 函数和常用模块【day06】:xml模块(六)

    本节内容 1.简述 2.xml格式 3.xml节点操作 4.创建新的xml文件 一.简述 xml是实现不同语言或者程序之间进行数据交换的协议,跟json差不多,但是json使用起来更简单,不过,古时候 ...

随机推荐

  1. Java匹马行天下之JavaWeb核心技术——JSP

    JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要在特定的web服务器上运行,分为web服务器和web客 ...

  2. Oracle11G的用户解锁、卸载以及基础操作

    Oracle用户解锁 [以下操作,必须以超级管理员身份登录,才能修改]oracle安装后,会默认生成很多个用户 以超级管理员身份登录,请注意,其中的空格符:[ sys是一个超级管理员,有最大的权限,d ...

  3. jquery调用asp.net 页面后台的实现代码

    先创建一个aspx页面编写一个客户端控件<input type="button" id="AjaxDemo" value="AjaxDemo&q ...

  4. android下的异步任务

    异步任务一般用在加载一些网络资源的时候用,主要的实现方法是新建一个类来继承AsyncTask这个父类,然后复写该类下面的一些方法,其中doInBackground方法是必须要的,下面看代码 packa ...

  5. Linux下安装maven和nexus

    Linux下安装maven1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令: 2.进入下载 ...

  6. LeetCode Move Zeroes (简单题)

    题意: 给定一个整型数组nums,要求将其中所有的0移动到末尾,并维护所有非0整数的相对位置不变. 思路: 扫一遍,两个指针维护0与非0的交界,将非0的数向前赋值就行了. C++ class Solu ...

  7. c++ STL list容器成员函数

    list是一个双链表. 函数 描述 void l.assign (int n, const val) void l.assign (it first, it last) 将链表l初始化为n个相同的va ...

  8. linux 命令——42 kill (转)

    Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...

  9. 知乎日报客户端应用ios源码

    swift开发的知乎日报客户端详细源码,里面分UI和网络两个模块. 1.涉及到了大部分的UI控件的使用(甚至包括UIRefreshView,UITableConrol等等)2.Connection完成 ...

  10. Android(java)学习笔记90:TextView 添加超链接(两种实现方式)

    1. TextView添加超链接: TextView添加超链接有两种方式,它们有区别于WebView: (1)方式1: LinearLayout layout = new LinearLayout(t ...