XML

Python高级

虚拟环境(Virtual Environment)应用

配置文件(Configuration File)

Linux平台应用程序在终端断开后保持运行的方法

TCP通信中recv方法的特点

Python项目文件结构

Python项目在Linux平台和Windows平台快速部署技术

 

XML

eXtensible Markup Language,可扩展标记语言,一种流行的文本数据交换格式,用于存储或传输数据,也经常用于配置文件

xml文件的后缀名为.xml,一个xml文档是由若干个xml元素(Element)构成,每个xml元素是由开始标签、元素内容和结束标签构成,开始标签和结束标签必须成对出现,元素内容可以为空(即空元素),标签名称区分大小写,比如<name>君哥</name>

每个xml文档首行必须是xml声明,有且必须要有一个根元素,每个xml元素可以有若干个属性,不同属性用空白分隔,属性名和属性值必须用等号(=)分隔,属性值必须要用引号括起来,单引号或双引号都行,双引号更常用

xml元素必须正确嵌套,不能交叉

有子元素的称为分支节点,没有子元素的称为终端节点

 

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

<student> # 根元素,根元素只有一个

<sno>1001</sno> # 子元素

<name>张三</name> # sno,name,sex之间为兄弟标签

<sex>男</sex>

</student>

 

在xml中标签可以随便命名,但在html中标签是固定的,不能随便命名

属性是写在xml的开始标签中,用一个空格隔开,属性名字和属性值用等号隔开

xml更提倡使用元素,元素更灵活,扩展性强,一般描述信息用属性表示

 

XML解析的三种常用方式

1.DOM:Document Object Model,文档对象模型,在内存中将XML文档表示为一个树形结构,通过调用相关的方法操作树上的节点,这种方式比较简单,但耗费内存很多,通常用于比较小的XML文档

2.SAX:Simple API for XML,XML文档简单编程接口,采用事件驱动的方式解析XML文档,并不将整个XML文档加载到内存中来,而是边读边触发一些事件(即流式读取),并调用已经和事件关联的回调函数进行处理,所以需要我们提前自己定义感兴趣事件的回调函数,这种方式适合较大XML文档的解析,内存消耗很低,适合从XML文档中提取部分想要的数据

3.ElementTree:元素树,轻量级DOM,内存消耗更低,速度更快一些

 

XPath表达式

用于定位DOM树中元素的式子

 

标准库爬虫

import urllib.request

data = urllib.request.urlopen("网址").read().decode()

print(data)

 

DOM相当于一次性将所有信息都读入文件,所以内存消耗较大

SAX相当于读一点写入一点,当读到想要的数据就直接提取,所以内存消耗较小

两者的特性和列表推导式和生成器相似

 

 

./ 代表当层

.// 代表不限层

startElement

endElement

characters

 

 

json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件

import json

name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} emb_filename = ('/home/cqh/faceData/emb_json.json')

solution 1jsObj = json.dumps(name_emb) with open(emb_filename, "w") as f: f.write(jsObj) f.close() solution 2

json.dump(name_emb, open(emb_filename, "w"))

 json.loads()用于将str类型的数据转成dict。

json.loads()用于将str类型的数据转成dict。
json.load()用于从json文件中读取数据

 

CPython 和Anaconda的区别:

两者都是Python解释器,但Anaconda中自带几百个第三方库,因此安装包比较大,比较适合新手使用

getpip 中有pip源代码,可以用python3直接执行源代码来安装pip,即执行setup脚本

 

扩展

1.一台服务器顶不住就要弄集群或负载均衡

2.对于软件工程师能玩的不过是函数或者类,要么是你写的要么是别人写的,别人写的就阅读文档

3.对于在python中使用mysql,python2中使用的是MySQLdb python3中使用的是pymysql

4.为每个项目创建一个虚拟环境,以保持系统环境的干净

source venv/bin/activate 激活

deactivate 取消激活

激活就是在PATH环境变量前面加上python3的路径

取消激活就是取消前面的路径

Python3 -m venv(模块名) venv(虚拟环境名) 创建虚拟环境

 

5.pip install pymysql=1.6 # 可以接=指定安装的版本

pip freeze # 列出安装的库及其版本

pip freeze > requirements.txt # 将其导出

pip install -r requirements.txt # 从txt文件中读出所有依赖第三方库,并下载安装

6.在运行python程序时,先问自己运行的python解释器是哪一个

which python3,看是不是所想要的python解释器

which pip

7.在改配置文件之前建议先将配置文件copy一份 ,这样改错了也能恢复,能减少不必要的麻烦

8.screen 可以启动一个虚拟终端,在其上面运行需要长期在服务器上运行的文件

screen -S file(文件名) 此后的命令终端执行的内容不受终端关闭的影响

screen -ls 查看运行的终端

screen -r file_transfer 关联

 

9.一些服务名后面加个d ,表示其为守护进程,在后台运行,意思是守护神

10.mysql中root用户不能在其他机器登录

11.set names utf8 传输编码

  1. mysql -uroot -p < mydb.sql # 导入

13.在windows下面 mysql导入使用sourse 跟上文件路径

 

 

posted @ 2019-08-25 20:02  YruiZ  阅读(677)  评论(0编辑  收藏  举报