今天做一个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. 深入javascript之对象

    前言 这是读书笔记第二篇,看完之后突然发现自己对js的内置的一些东西还是了解的不够全面,很多方法见都没见过,啥用都不知道,这是非常不可取的.码农好歹也得眼熟啊,晓都不晓得后面的学习还怎么进行下去... ...

  2. (转)Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    原文出自:http://blog.csdn.net/anxpp/article/details/51512200 1.BIO编程 1.1.传统的BIO编程 网络编程的基本模型是C/S模型,即两个进程间 ...

  3. Java基础总结--泛型总结

    -----泛型------JDK1.5出现的机制1.泛型出现的原因--简化书写,提高安全性技术的由来是为了解决问题,现在存在该问题,所有的容器定义类型为Object,所以任何对 象均可以放入容器--进 ...

  4. jstl 中 <c:foreach> 多级循环

  5. LeetCode 533. Lonely Pixel II (孤独的像素之二) $

    Given a picture consisting of black and white pixels, and a positive integer N, find the number of b ...

  6. LeetCode 209. Minimum Size Subarray Sum (最短子数组之和)

    Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...

  7. SQL数据查询语句(一)

    本文所用数据库为db_Test,数据表为Employee 一.SELECT语句基本结构 语句语法简单归纳为: SELECT select_list [INTO new_table_name] [FRO ...

  8. RabbitMQ-客户端

    Install-Package RabbitMQ.Client 参考: http://www.rabbitmq.com/download.html https://www.nuget.org/pack ...

  9. 推荐一款不错的反编译软件:Reflector

    只需要把要反编译的dll拖放到程序窗口就可以看到code了.是不是很简单,快来试试吧.不只是可以反编译个人写的code,.Net库一样可以查看代码.想学习.Net核心代码的可以试试看.

  10. Leetcode题解(25)

    77. Combinations 题目 分析:求给定数字n,k的组合数,方法是采用深度搜索算法,代码如下(copy网上代码) class Solution { public: void dfs77(v ...