【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.")



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值