【python学习笔记】对配置文件.ini进行增删改查

新手上路,代码写的不够简洁明了,欢迎指出。

1.先导入configobj库文件

可以用pip直接安装
#!/usr/bin/python
# -*- coding: utf-8 -*-

import json

from configobj import ConfigObj

2.增添section

这里是前后端分离的例子,从前端接收json数据,然后写入配置文件中
def add(self, false=None):
    self.log.debug("list")
    try:
        conf_ini = CONFIG_INI_PATH+"users.ini.bak"
        config = ConfigObj(conf_ini, encoding='UTF8')
        req = self.input["input"]
        data = req["data"]
        userName = data["userName"]
        disc = data["disc"]
        ip = data["ip"]
        expMonth = int(float(data["expDate"]) * 12)
        for user in config.items():
            if userName == user[0]:
                self.out = '{"status": 1,"msg":"用户名已存在!"}'
                return false
            else:
                pass
       config[userName] = {}
        config[userName]['user'] = userName
        config[userName]['disc'] = disc
        config[userName]['ip'] = ip
        config[userName]['validity_date'] = data["expDate"]
        config[userName]['cert_expired'] = get_today_month(expMonth)
        config[userName]['enable'] = 0
        config[userName]['path'] = USER_KEY_PATH + userName
        config.write()
        self.out = '{"status": 0,"msg":"操作成功!"}'
    except Exception, e:
        self.out = '{"status":1, "msg":"'+str(e)+'"}'

3.修改section

def modify(self):
    self.log.debug("modify")
    try:
        conf_ini = CONFIG_INI_PATH + "users.ini.bak"
        config = ConfigObj(conf_ini, encoding='UTF8')
        req = self.input["input"]
        data = req["data"]
        userName = data["userName"]
        disc = data["disc"]
        ip = data["ip"]
        config[userName]['disc'] = disc
        config[userName]['ip'] = ip
        config.write()
        self.out = '{"status": 0,"msg":"操作成功!"}'
    except Exception, e:
        self.out = '{"status":1, "msg":"'+str(e)+'"}'


3.删除section

通过section名找到相应section进行del操作
def delete(self, false=None):
    self.log.debug("delete")
    try:
        conf_ini = CONFIG_INI_PATH + "users.ini.bak"
        config = ConfigObj(conf_ini, encoding='UTF8')
        req = self.input["input"]
        data = req["data"]
        userName = data["userName"]
        for user in config.items():
            if userName == user[0]:
                del config[userName]
                config.write()
                self.out = '{"status": 0,"msg":"操作成功!"}'
                return false
            else:
                pass
        self.out = '{"status": 1,"msg":"用户不存在!"}'
    except Exception, e:
        self.out = '{"status":1, "msg":"config err!"}'

4.查询section

这里借用python字典将配置文件里的内容整体输出,代码里还有查询和分页的功能
def list(self):
    self.log.debug("list")
    try:
        req = self.input["input"]
        data = req["data"]
        pageSize = req["pageSize"]
        pageIndex = req["pageIndex"]
        userName = data["userName"]
        conf_ini = CONFIG_INI_PATH + "users.ini.bak"
        config = ConfigObj(conf_ini, encoding='UTF8')
        users = []
        n = 0
        if userName == '':
            for user in config.items():
                n = n + 1
                if pageSize * pageIndex + 1 <= n <= pageSize * (pageIndex + 1):
                    users.append(user[1])
                else:
                    pass
        else:
            for user in config.items():
                if userName == user[0]:
                    n = n + 1
                    if pageSize * pageIndex + 1 <= n <= pageSize * (pageIndex + 1):
                        users.append(user[1])
                    else:
                        pass
                else:
                    pass

        utext = json.dumps(users)
        self.out = '{"status": 0,"total":'+str(n)+',"data":' + utext + '}'
    except Exception, e:
        self.out = '{"status":1, "msg":"' + str(e) + '"}'
    self.log.debug("list in.")



你可能感兴趣的:(python)