今天做一个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中的配置文件跟字典基本一样,让人听了很容易混淆!
其实配置文件跟字典的差别还是很大的!跟普通文件也不一样!
今天因为这两点,卡了我一整天,真是郁闷死啦!