zoukankan      html  css  js  c++  java
  • python模块补充

    一、模块补充

    configparser

    1.基本的读取配置文件

    -read(filename) 直接读取ini文件内容

    -sections() 得到所有的section,并以列表的形式返回

    -options(section) 得到该section的所有option

    -items(section) 得到该section的所有键值对

    -get(section,option) 得到section中option的值,返回为string类型

    -getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。

    2.基本的写入配置文件

    -add_section(section) 添加一个新的section

    -set( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。

    3.基本例子

    test.conf

    import ConfigParser 
    cf = ConfigParser.ConfigParser() 
    #read config 
    cf.read("test.conf") 
    # return all section 
    secs = cf.sections() 
    print 'sections:', secs 
       
    opts = cf.options("sec_a") 
    print 'options:', opts 
       
    kvs = cf.items("sec_a") 
    print 'sec_a:', kvs 
       
    #read by type 
    str_val = cf.get("sec_a", "a_key1") 
    int_val = cf.getint("sec_a", "a_key2") 
       
    print "value for sec_a's a_key1:", str_val 
    print "value for sec_a's a_key2:", int_val 
       
    #write config 
    #update value 
    cf.set("sec_b", "b_key3", "new-$r") 
    #set a new value 
    cf.set("sec_b", "b_newkey", "new-value") 
    #create a new section 
    cf.add_section('a_new_section') 
    cf.set('a_new_section', 'new_key', 'new_value') 
       
    #write back to configure file 
    cf.write(open("test.conf", "w"))

    2、XML

    xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

    abc.xml

    <?xml version="1.0" encoding="utf-8"?>
    <catalog>
        <maxid>4</maxid>
        <login username="pytest" passwd='123456'>
            <caption>Python</caption>
            <item id="4">
                <caption>测试</caption>
            </item>
        </login>
        <item id="2">
            <caption>Zope</caption>
        </item>
    </catalog>

    Ok ,从结构上,它很像我们常见的HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来传输和存储数据,其焦点是数据的内容。

    那么它有如下特征:

    首先,它是有标签对组成,<aa></aa>

    标签可以有属性:<aa id=’123’></aa>

    标签对可以嵌入数据:<aa>abc</aa>

    标签可以嵌入子标签(具有层级关系):

    <aa>

         <bb></bb>

    </aa>

     

    获得标签属性

     

    那么,下面来介绍如何用python来读取这种类型的文件。

    #coding=utf-8
    import  xml.dom.minidom
    
    #打开xml文档
    dom = xml.dom.minidom.parse('abc.xml')
    
    #得到文档元素对象
    root = dom.documentElement
    print root.nodeName
    print root.nodeValue
    print root.nodeType
    print root.ELEMENT_NODE

    mxl.dom.minidom 模块被用来处理xml文件,所以要先引入。

    xml.dom.minidom.parse() 用于打开一个xml文件,并将这个文件对象dom变量。

    documentElement 用于得到dom对象的文档元素,并把获得的对象给root

    每一个结点都有它的nodeName,nodeValue,nodeType属性。

    nodeName为结点名字。

    nodeValue是结点的值,只对文本结点有效。

    nodeType是结点的类型。catalog是ELEMENT_NODE类型

    现在有以下几种:

    'ATTRIBUTE_NODE'
    'CDATA_SECTION_NODE'
    'COMMENT_NODE'
    'DOCUMENT_FRAGMENT_NODE'
    'DOCUMENT_NODE'
    'DOCUMENT_TYPE_NODE'
    'ELEMENT_NODE'
    'ENTITY_NODE'
    'ENTITY_REFERENCE_NODE'
    'NOTATION_NODE'
    'PROCESSING_INSTRUCTION_NODE'
    'TEXT_NODE'

    NodeTypes - 有名常数

    http://www.w3school.com.cn/xmldom/dom_nodetype.asp

     

     

    获得子标签

     

    现在要获得catalog的子标签以的标签name

    <?xml version="1.0" encoding="utf-8"?>
    <catalog>
           <maxid>4</maxid>
           <login username="pytest" passwd='123456'>
                  <caption>Python</caption>
                 <item id="4">
                        <caption>测试</caption>
                </item>
        </login>
        <item id="2">
                <caption>Zope</caption>
        </item>
    </catalog>

    二、面向对象

      虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程。下面就来了解一下如何在Python中进行对象编程。

    一.如何定义一个类

      在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法。

      类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义:

    class className:
        block
    注意类名后面有个冒号,在block块里面就可以定义属性和方法了。当一个类定义完之后,就产生了一个类对象。类对象支持两种操作:引用和实例化。引用操作是通过类对象去调用类中的属性或者方法,而实例化是产生出一个类对象的实例,称作实例对象。比如定义了一个people类:
    class people:
        name = 'jack'       #定义了一个属性
        #定义了一个方法
        def printName(self):
            print self.name

    people类定义完成之后就产生了一个全局的类对象,可以通过类对象来访问类中的属性和方法了。当通过people.name(至于为什么可以直接这样访问属性后面再解释,这里只要理解类对象这个概念就行了)来访问时,people.name中的people称为类对象,这点和C++中的有所不同。当然还可以进行实例化操作,p=people( ),这样就产生了一个people的实例对象,此时也可以通过实例对象p来访问属性或者方法了(p.name).

      理解了类、类对象和实例对象的区别之后,我们来了解一下Python中属性、方法和函数的区别。

      在上面代码中注释的很清楚了,name是一个属性,printName( )是一个方法,与某个对象进行绑定的函数称作为方法。一般在类里面定义的函数与类对象或者实例对象绑定了,所以称作为方法;而在类外定义的函数一般没有同对象进行绑定,就称为函数。

    2.属性

      在类中我们可以定义一些属性,比如:

    class people:
        name = 'jack'
        age = 12
    
    p = people()
    print p.name,p.age

    定义了一个people类,里面定义了name和age属性,默认值分别为'jack'和12。在定义了类之后,就可以用来产生实例化对象了,这句p = people( )实例化了一个对象p,然后就可以通过p来读取属性了。这里的name和age都是公有的,可以直接在类外通过对象名访问,如果想定义成私有的,则需在前面加2个下划线 ' __'。

    class people:
        __name = 'jack'
        __age = 12
    
    p = people()
    print p.__name,p.__age
  • 相关阅读:
    实验室 Linux 集群的管理常用命令
    python操作MySQL数据库
    python 文件操作总结
    MySQL常用的操作整理
    机器学习模型数据结构:logistic regression, neural network, convolutional neural network
    Python并发编程之线程池/进程池--concurrent.futures模块
    python3.5实现购物车
    Centos上安装python3.5以上版本
    [Python]关于return逻辑判断和短路逻辑
    [Python]返回函数,装饰器拾遗
  • 原文地址:https://www.cnblogs.com/lidong94/p/5615906.html
Copyright © 2011-2022 走看看