今天做一个ATM的练习,想要用configparser模块,写一个配置文件,存放用户信息。

结果状况连连,叫苦不迭。

我用configparser模块,想要对配置文件,进行读、写、改、查 功能。

其中 功能 和 功能 根据视频教程里教的,都没有出什么大问题。

写:

# coding=gbk
import os,json,sys
import configparser
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #初始化用户信息(包括:银行管理账户,商城用户账户,信用卡用户账户)
a=configparser.ConfigParser()
a['DEFAULT']={
'默认':''
}
a['商城用户']={
'uid':'张三',
'pwd':''
}
a['银行root']={
'uid':'root',
'pwd':''
}
a['信用卡用户1']={
'uid':'user1',
'pwd':'',
'存款':'',
'额度':'',
'冻结':'False'
}
a['信用卡用户2']={
'uid':'user2',
'pwd':'',
'存款':'',
'额度':'',
'冻结':'False'
}
with open(BASE_DIR + os.sep + 'conf' + os.sep + '用户信息.ini','w') as b:
a.write(b)

读:

    a = configparser.ConfigParser()
a.read(BASE_DIR + os.sep + 'conf' + os.sep + '用户信息.ini')

改:!!!!重大注意!!!

    a = configparser.ConfigParser()
a.read(BASE_DIR + os.sep + 'conf' + os.sep + '用户信息.ini')
a.set(x, '冻结', 'False')
with open(BASE_DIR + os.sep + 'conf' + os.sep + '用户信息.ini', 'w')as f:
a.write(f)

增:!!!!重大注意!!!!

a=configparser.ConfigParser()
a.read(BASE_DIR+os.sep+'conf'+os.sep+'用户信息.ini')
a.add_section(x)
a.set(x,'uid',y)
a.set(x,'pwd',z)
a.set(x,'存款','')
a.set(x,'额度','')
a.set(x,'冻结','False')
with open(BASE_DIR+os.sep+'conf'+os.sep+'用户信息.ini','w')as f:
a.write(f)

一定要注意两点,第一:每一次增和改操作,都要用一次读和一次写夹住。第二:不论是键还是值,都必须要是字符串类型,不然会报错!

视频教程中,讲师为了吹python的强大程度,说pyhton中的配置文件跟字典基本一样,让人听了很容易混淆!

其实配置文件跟字典的差别还是很大的!跟普通文件也不一样!

今天因为这两点,卡了我一整天,真是郁闷死啦!

pyhton 关于 configparser 配置 模块 实践使用中碰到的坑的更多相关文章

  1. Python-selenium,使用SenKey模块时所碰到的坑

    一.SenKey模块(模拟鼠标键盘操作) :python3中没有该模块,使用PyUserInput模块代替 二.PyUserInput模块安装前需要安装:pywin32和pyHook模块,pywin3 ...

  2. cordova + ionic 使用中碰到的一些问题

    cordova + ionic 使用中碰到的一些问题     No Content-Security-Policy meta tag found. Please add one when using ...

  3. Abp通用配置模块的设计

    引言 约定优于配置,配置趋于灵活 约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处, ...

  4. vagrant 虚拟机配置最佳实践

    Mac VirtualBox Vagrant 管理虚拟机 这篇文章定位是在理解了 vagrant 相关概念之后,教你如何灵活玩转自己的虚拟机配置 本文为 @favoorr 常用的 Mac Virtua ...

  5. Elasticsearch优化 & filebeat配置文件优化 & logstash格式配置 & grok实践

    Elasticsearch优化 & filebeat配置文件优化 & logstash格式配置 & grok实践 编码转换问题(主要就是中文乱码) (1)input 中的cod ...

  6. 如何让HTTPS站点评级达到A+? 还得看这篇HTTPS安全优化配置最佳实践指南

    0x00 前言简述 SSL/TLS 简单说明 描述: 当下越来越多的网站管理员为企业站点或自己的站点进行了SSL/TLS配置, SSL/TLS 是一种简单易懂的技术,它很容易部署及运行,但要对其进行安 ...

  7. atitit.spring3 mvc url配置最佳实践

    atitit.spring3 mvc url配置最佳实践 1. Url-pattern  bp 1 2. 通用星号url pattern的问题 1 3. Other code 1 4. 参考 2 1. ...

  8. Thinkphp3.2———配置模块

    一.配置格式 Thinkphp框架中的所有配置都是数组形式定义的的格式为: //项目配置 return array( 'DEFAULT_MODULE'=>'Index',//默认模块 'URL_ ...

  9. Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块

    文章目录 1. 实战的开端 – Maven搭建 2. 参数的配置 - 属性参数类 3. 真的很简单 - 简单的服务类 4. 自动配置的核心 - 自动配置类 5. spring.factories 不要 ...

随机推荐

  1. Servlet 笔记-读取表单数据

    Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析: getParameter():您可以调用 request.getParameter() 方法来获取表单参数的值. get ...

  2. 字符串解码DecodeString

    字符串解码 原创博客,转载请注明出处!eg:ss=2[abc]3[cd]ef   return:abcabccdcdcdefss=3[a2[c]]2[a]    return:accaccaccaas ...

  3. Windows NT 之父 - David Cutler

    David Cutler,大卫·卡特勒,一位传奇程序员,1988年去微软前号称硅谷最牛的内核开发人员,是VMS和Windows NT的首席设计师,被人们成为“操作系统天神”.他曾供职于杜邦.DEC等公 ...

  4. LeetCode 289. Game of Life (生命游戏)

    According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...

  5. Mybatis报错:Parameter 'list' not found. Available parameters are [groupList, param1]

    GroupDao.java 里面定义的方法: void batchInsertLog(@Param("groupList") List<MktPromotionIntegra ...

  6. Idea报错Check $M2_HOME environment variable and mvn script match.

    -Dmaven.multiModuleProjectDirectory=$M2_HOME

  7. Leetcode题解(七)

    24.Swap Nodes in Pairs 题目 看到此题,第一想法是利用两个指针,分别将其所指向的节点的value交换.然后同时向后移动2个节点,代码如下: struct ListNode { i ...

  8. TinyXML2的使用

    -----------------------------------------------------------------2015年7月21日16:37:53----------------- ...

  9. OR in Matrix

    OR in Matrix Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submi ...

  10. 0_Simple__clock + 0_Simple__clock_nvrtc

    使用 clock() 函数在CUDA核函数内部进行计时,将核函数封装为PTX并在另外的代码中读取和使用. ▶ 源代码:文件内建核函数计时. #include <stdio.h> #incl ...