Python开发【第七篇】: 面向对象和模块补充

内容概要

  1.   特殊成员
  2.  反射
  3.  configparser模块
  4.  hashlib模块
  5.  logging模块
  6.  异常处理
  7.  模块
  8.  包

1. 特殊成员

2. 反射

3. configparser模块

  该模块适用于配置文件件的格式与windows ini文件类似,可以包含一个或多个节(section)每个节可以有多个参数(键=值). 首先, 我们先看一个xxx服务器的配置文件

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes

[server]
User = hg
Bind = 0.0.0.0
Port = 8888

[client]
IP = 127.0.0.0
Port = 50022
ForwardX11 = no

我们用configparser就可以对这样的文件进行处理.首先, 是初始化

# 1. 初始化
import configparser
config = configparser.ConfigParser()

config["DEFAULT"] = {
    "sleep": 1000,
    "session-time-out": 30,
    "user-alive": 999999
}

config["TEST-DB"] = {
    "db_ip": "192.168.17.189",
    "port": "3306",
    "u_name": "root",
    "u_pwd": "123456"
}

config['168-DB'] = {
 "db_ip": "152.163.18.168",
 "port": "3306",
 "u_name": "root",
 "u_pwd": "123456"
}

f = open("config.ini",mode="w")
config.write(f)  # 写入文件
f.flush()
f.close()

# 读取文件信息:
config = configparser.ConfigParser()

config.read("config.ini")  # 读取文件
print(config.sections())   # 获取到所有section(章节)。 [DEFAULT]是默认信息,每个章节都有[DEFAULT]中的信息
# 执行结果:  ['TEST-DB', '168-DB']

# 从章节中获取到任意的数据,get 方法Section下的key对应的value
print(config.get("TEST-DB","db_ip"))
# 执行结果: 192.168.17.189

# 也可以像字典一样操作
print(config["TEST-DB"]['db_ip'])
print(config["168-DB"]["db_ip"])
# 执行结果:
# 192.168.17.189
# 152.163.18.168

# 循环TEST-DB章节下的所有key
for k in config["TEST-DB"]:
    print(k)

# 所有key:value
for k,v in config["TEST-DB"].items():
    print(k,v)

print(config.options("TEST-DB"))  # 同for循环,找到 "TEST-DB"下所有键
# ['db_ip', 'port', 'u_name', 'u_pwd', 'sleep', 'session-time-out', 'user-alive']

print(config.items("TEST-DB"))  # 找到 "TEST-DB"下所有键值对
# [('sleep', '1000'), ('session-time-out', '30'), ('user-alive', '999999'), ('db_ip', '192.168.17.189'), ('port', '3306'), ('u_name', 'root'), ('u_pwd', '123456')]
View Code

增删改操作:

# 先读取. 然后修改. 最后写回文件
config = configparser.ConfigParser()
config.read("config.ini")  # 读取文件

# 添加一个章节
config.add_section("172-DB")
config["172-DB"] = {
    "db_ip": "172.168.12.11",
    "port": "3306",
    "u_name": "root",
    "u_pwd": "123456"
}

# 修改信息
config.set("168-DB","db_ip","10.0.3.26")

# 删除章节
config.remove_section("TEST-DB")

# 删除元素信息
config.remove_option("168-DB","db_ip")

# 写回文件
config.write(open("config.ini",mode="w"))
View Code

4. hashlib模块

5. logging模块

6. 异常处理

7. 模块

8. 包

猜你喜欢

转载自www.cnblogs.com/root0/p/10430805.html