zoukankan      html  css  js  c++  java
  • 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 跟上文件路径

     

  • 相关阅读:
    oracle 第12章 归档日志文件
    oracle 第09章 参数文件
    oracle 第11章 重做日志文件
    oracle 第10章 控制文件
    oracle 第14章 表空间管理
    linux yum源配置
    oracle 第08章 用户、权限、角色管理
    oracle 第07章 网络配置管理
    第二阶段冲刺-06
    第二阶段冲刺-05
  • 原文地址:https://www.cnblogs.com/yanruizhe/p/11409095.html
Copyright © 2011-2022 走看看