python第七章_python第七章

本文介绍了Python中处理配置文件的ConfigParser模块,包括读取、写入配置文件的基本操作。同时,讲解了XML的基础知识,如XML的结构特点,并展示了使用xml.dom.minidom模块读取XML文件的方法。此外,还简单提及了Python面向对象编程的概念,包括类、实例对象和属性的定义与使用。
摘要由CSDN通过智能技术生成

一、模块补充

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

importConfigParser

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_valprint "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

4

Python测试Zope

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

那么它有如下特征:

首先,它是有标签对组成,

标签可以有属性:

标签对可以嵌入数据:abc

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

获得标签属性

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

#coding=utf-8

importxml.dom.minidom#打开xml文档

dom = xml.dom.minidom.parse(‘abc.xml‘)#得到文档元素对象

root =dom.documentElementprintroot.nodeNameprintroot.nodeValueprintroot.nodeTypeprint 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 - 有名常数

获得子标签

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

4

Python测试Zope

二、面向对象

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

一.如何定义一个类

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

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

class className:

block

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

classpeople:

name= ‘jack‘ #定义了一个属性

#定义了一个方法

defprintName(self):print self.name

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

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

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

2.属性

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

classpeople:

name= ‘jack‘age= 12p=people()print p.name,p.age

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

classpeople:__name = ‘jack‘

__age = 12p=people()print p.__name,p.__age

原文:http://www.cnblogs.com/lidong94/p/5615906.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值