zoukankan      html  css  js  c++  java
  • 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中的配置文件跟字典基本一样,让人听了很容易混淆!

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

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

  • 相关阅读:
    uva11916 Emoogle Grid (BSGS)
    2016vijos 1-2 股神小L(堆)
    bzoj千题计划311:bzoj5017: [Snoi2017]炸弹(线段树优化tarjan构图)
    Oracle Profile 使用详解--zhuanzai
    通过srvctl add命令添加database信息到srvctl管理器-转
    Oracle Dataguard Standby Redo Log的两个实验
    MySQL数据的主从复制、半同步复制和主主复制详解-转
    解决oralce 11g dg搭建报错:ORA-16664、ORA-16714、ORA-16810问题--转
    oracle分布式事务总结-转载
    日志挖掘Logmnr
  • 原文地址:https://www.cnblogs.com/xuepangzi/p/7989223.html
Copyright © 2011-2022 走看看