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 Django框架实现自定义表单提交
Mar 25 Python
Python中不同进制的语法及转换方法分析
Jul 27 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
python django 实现验证码的功能实例代码
May 18 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 Python
python实现用户名密码校验
Mar 18 Python
Flask处理Web表单的实现方法
Jan 31 Python
python自动化调用百度api解决验证码
Apr 13 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面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
javascript 页面只自动刷新一次
2009/07/10 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
微信小程序实现弹出菜单功能
2018/06/12 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
Numpy的简单用法小结
2019/08/28 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
医药专业推荐信
2013/11/15 职场文书
小学教师管理制度
2014/01/18 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
会计求职信
2014/05/29 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
退税申请报告怎么写
2015/05/18 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript