python对配置文件.ini进行增删改查操作的方法示例


Posted in Python onJuly 28, 2017

前言

本文主要给大家介绍的是关于python对配置文件.ini增删改查操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

一、先导入configobj库文件

可以用pip直接安装

#!/usr/bin/python
# -*- coding: utf-8 -*-

import json

from configobj import ConfigObj

二、增添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)+'"}'

三、修改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)+'"}'

四、删除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!"}'

五、查询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 相关文章推荐
使用Python开发windows GUI程序入门实例
Oct 23 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
深入探究Django中的Session与Cookie
Jul 30 Python
Python实现统计给定列表中指定数字出现次数的方法
Apr 11 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
python 实现矩阵按对角线打印
Nov 29 Python
python中有帮助函数吗
Jun 19 Python
python 制作本地应用搜索工具
Feb 27 Python
Python 中数组和数字相乘时的注意事项说明
May 10 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 Python
Python3中使用PyMongo的方法详解
Jul 28 #Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 #Python
Python单体模式的几种常见实现方法详解
Jul 28 #Python
深入浅出分析Python装饰器用法
Jul 28 #Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 #Python
Python使用sorted排序的方法小结
Jul 28 #Python
python发送邮件实例分享
Jul 28 #Python
You might like
根据中文裁减字符串函数的php代码
2013/12/03 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
PHP实现简单登录界面
2019/10/23 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
Sublime开发python程序的示例代码
2018/01/24 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
python列表list保留顺序去重的实例
2018/12/14 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
Pytorch释放显存占用方式
2020/01/13 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
如何通过jdbc调用存储过程
2012/04/19 面试题
11月升旗仪式讲话稿
2014/02/15 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
合同纠纷调解书
2015/05/20 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS