Python高级语法——格式化文件——学习心得笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python高级语法——格式化文件——学习心得笔记相关的知识,希望对你有一定的参考价值。


Python高级语法——格式化文件——学习心得笔记

  • 前言
  • 为了解决不同设备之间的信息交换
  • 两个模块
  • xml,json

1. xml (EXtensible Markup Language)

  • XML 指可扩展标记语言
  • XML 被设计用来传输和存储数据
  • 什么是 XML?
  • XML 指可扩展标记语言(EXtensible Markup Language)
  • XML 是一种标记语言,很类似 html
  • XML 的设计宗旨是传输数据,而非显示数据
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准
  • XML 与 HTML 的主要差异
  • XML 不是 HTML 的替代。
  • XML 和 HTML 为不同的目的而设计:
  • XML 被设计为传输和存储数据,其焦点是数据的内容。
  • HTML 被设计用来显示数据,其焦点是数据的外观。
  • HTML 旨在显示信息,而 XML 旨在传输信息。

1.1. XML文档的构成

  • 处理指令(可以认为一个文件内只有一个处理指令)
  • 只有一行
  • 且在第一行
  • 根元素(一个文件内只有一个根元素,只能有一个树根:实例中的School
  • 子元素:实例中的student
  • 属性:元素开头括号里面标明
  • 内容: 表明标签所存储的内容
  • 注释:起说明作用的信息
  • 注释的格式:
  • 看实例34_1.xml
<?xml version="1.0" encoding="GB18030" ?>
<School type="online" loc="beijing">

<Teacher>
<!--我是注释1-->
<name>Felix</name>
<age>20</age>
</Teacher>

<Student1 type="web">
<name>Felix</name>
<age>20</age>
</Student1>

<Student2>
<name>Felix</name>
<age>20</age>
</Student2>

<!--实体引用写法-->
<score> score>80 </score>

</School>
  • 保留字符处理
  • XML中使用的符号可能跟实际符号相冲突,特别是左右尖括号
  • 使用实体引用来表示保留字符
  • score>80 会出现错误,XML不能存在这种写法
  • score>80 #使用实体引用
  • 把含有保留字符的部分放在CDATA模块中,模块内部信息视为不需要转义 <![<![CDATA[ 内容 ]]>
  • 保留字符对应的实体引用
    < < 小于
    > > 大于
    & & 和号
    ’ ’ 省略号
    " " 引号
  • XML标签的命名和规则
  • Pascal命名法
  • 用单词表示,首字母大写
  • 大小写严格区分
  • 配对的标签必须一致
  • 命名空间

1.2. XML访问

  • XML读取分为两个主要技术:SAX DOM
  • SAX(Simple API for XML)
  • 基于事件驱动
  • 利用SAC解析文档设计到解析器和事件处理两部分
  • 特点:
  • 流式读取
  • DOM
  • 最常用
  • 是W3C规定的XMC编程接口
  • 一个XML文件在缓存中以树形结构保存读取
  • 用途
  • 定位浏览XML文件任何一个节点信息
  • 添加删除相应的内容
  • minidom
  • 看实例movies
  • etree
  • 类似DOM

2. json (EXtensible Markup Language)

  • JSON: javascript Object Notation(JavaScript 对象表示法)
  • JSON 是存储和交换文本信息的语法。类似 XML。
  • JSON 是轻量级的文本数据交换格式
  • JSON 比 XML 更小、更快,更易解析。
  • JSON实例
  • 键值对应,类似PYTHON中的字典

    “sites”: [
    “name”:“菜鸟教程” , “url”:“​​​www.runoob.com​​​” ,
    “name”:“google” , “url”:“​​​www.google.com​​​” ,
    “name”:“微博” , “url”:“​​​www.weibo.com​​​”
    ]
  • python for json
  • json包
  • json和python对象的转换
  • json.dumps():对数据编码,把python格式表示为json格式
  • json.loads():对数据解码,把python格式表示为python格式
  • python读取json文件
  • json.dump():把内容写入文件
  • json.load():把json文件内容读入python
  • 看实例34_2.py
import json

data = "name": "Felix", "age": 20

# 以写的方式打开,如果没有则新建一个
with open(34_2.json, w) as f:
# 将data的内容写入到json文件中
json.dump(data, f)

# 以读的方式打开文件
with open(34_2.json, r) as f:
# 读取json文件中的内容保存在d中
d = json.load(f)
print(d)

**

补充XML文档案例一个

**

<?xml version="1.0" encoding="UTF-8" ?>

<collection shelf="New Arrivals">

<movie title="Enemy Behind">
<type>War, Thriller</type>
<format>DVD</format>
<year>2003</year>
<rating>PG</rating>
<stars>10</stars>
<description>Talk about a US-Japan war</description>
</movie>

<movie title="Transformers">
<type>Anime, Science Fiction</type>
<format>DVD</format>
<year>1989</year>
<rating>R</rating>
<stars>8</stars>
<description>A schientific fiction</description>
</movie>

</collection>
from xml.dom.minidom import parse
import xml.dom.minidom

# 使用minidom解析器打开 XML 文档
DOMTree = xml.dom.minidom.parse("movies.xml")
# 获取XML文档对象
collection = DOMTree.documentElement
if collection.hasAttribute("shelf"):
print ("Root element : %s" % collection.getAttribute("shelf"))

# 在集合中获取所有电影
movies = collection.getElementsByTagName("movie")

# 打印每部电影的详细信息
for movie in movies:
print ("*****Movie*****")
if movie.hasAttribute("title"):
print ("Title: %s" % movie.getAttribute("title"))

type = movie.getElementsByTagName(type)[0]
print ("Type: %s" % type.childNodes[0].data)
format = movie.getElementsByTagName(format)[0]
print ("Format: %s" % format.childNodes[0].data)
rating = movie.getElementsByTagName(rating)[0]
print ("Rating: %s" % rating.childNodes[0].data)
description = movie.getElementsByTagName(description)[0]
print ("Description: %s" % description.childNodes[0].data)


以上是关于Python高级语法——格式化文件——学习心得笔记的主要内容,如果未能解决你的问题,请参考以下文章

朗科学习期间心得笔记

C++学习笔记之高级语法

Python学习笔记一

Python学习笔记—— 高级特性

python学习之高级特性

Python学习笔记