pyhton 关于 configparser 配置 模块 实践使用中碰到的坑

今天做一个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']={
    '默认':'111'
}
a['商城用户']={
    'uid':'张三',
    'pwd':'2333'
}
a['银行root']={
    'uid':'root',
    'pwd':'2333'
}
a['信用卡用户1']={
    'uid':'user1',
    'pwd':'2333',
    '存款':'10000',
    '额度':'20000',
    '冻结':'False'
}
a['信用卡用户2']={
    'uid':'user2',
    'pwd':'2333',
    '存款':'10000',
    '额度':'20000',
    '冻结':'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,'存款','0')
    a.set(x,'额度','0')
    a.set(x,'冻结','False')
    with open(BASE_DIR+os.sep+'conf'+os.sep+'用户信息.ini','w')as f:
        a.write(f)

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏nnngu

通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息

源代码:https://github.com/nnngu/LagouSpider

5496
来自专栏ChaMd5安全团队

DedeCMS的两个小trick

0x00 前言 昨天晚上做了一个神奇的梦,梦到了我高中时候晚自习在偷偷的看《黑客攻防技术宝典》,当年的事情无论是苦是乐,回忆起来总是感觉非常的美好。但是,现实就...

3089
来自专栏小灰灰

Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构...

1043
来自专栏Linyb极客之路

2016年百度面试经历

第一轮面试 1. 简单介绍自己 这个没什么说的,主要都是从简历上面说一下,面试官也会根据简历进行提问 2. 想象一个场景:一个系统要同步美国(订单)和中国的数据...

3247
来自专栏王清培的专栏

alibaba druid 在springboot start autoconfig 下的bug

标签(空格分隔):druid springboot start autoconfig

1460
来自专栏IT派

爬虫大神,又出新招

几乎所有玩爬虫的人,一定会用requests库,这个库的作者是大名鼎鼎的Kenneth Reitz 。牛逼的一塌糊涂,最近我浏览它的网站,发现他又出新招,一个把...

1253
来自专栏BIT泽清

彩票iOS马甲包混淆避规4.3审核详细操作教程

马甲包对于一家公司的产品引流起到至关重要的作用。但是最近这段时间,苹果对于中国区的iOS开发者们要求很是严格,想必各位也吃到了苹果的2.1大礼包,满世界的寻找马...

6645
来自专栏SeanCheney的专栏

《Python分布式计算》 第6章 超级计算机群使用Python (Distributed Computing with Python)典型的HPC群任务规划器使用HTCondor运行Python任务

本章,我们学习另一种部署分布式Python应用的的方法。即使用高性能计算机(HPC)群(也叫作超级计算机),它们通常价值数百万美元(或欧元),占地庞大。 真正的...

1.4K10
来自专栏高性能分布式系统设计

如何把Go调用C的性能提升10倍?

目前,当Go需要和C/C++代码集成的时候,大家最先想到的肯定是CGO。毕竟是官方的解决方案,而且简单。 但是CGO是非常慢的。因为CGO其实一个桥接器,通过自...

5496
来自专栏JavaEdge

操作系统之存储管理一、基本概念:地址重定位二、地址重定位三、物理内存管理四、连续内存管理方案五、离散内存管理方案(重点)六、交换技术七、虚拟存储技术八、页表及页表项的设计三、虚拟页式存储中软件相关策略

4528

扫码关注云+社区

领取腾讯云代金券