虚拟环境(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更提倡使用元素,元素更灵活,扩展性强,一般描述信息用属性表示
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 传输编码
-
mysql -uroot -p < mydb.sql # 导入
13.在windows下面 mysql导入使用sourse 跟上文件路径