python 之 读取配置文件ini

    沿着在树莓派中开发瘦客户端连接远程桌面GUI程序这条主线,摸到了这里,使用pyqt5开发图形界面之后,程序读取一个ini配置文件,将远程连接的相关参数写到这个ini配置文件中。这样可以实现一个最简版的远程桌面连接程序。

    以上是背景,仅做一个记录。这里是一个测试程序,以帮助自己熟悉python读取配置文件。

    此文参考了这个网址:

    https://blog.csdn.net/songlh1234/article/details/83316468


一、读取配置文件

在config下有一个config.ini配置文件

#  定义config分组
[config]
platformName=Android
appPackage=com.romwe
appActivity=com.romwe.SplashActivity
 
#  定义cmd分组
[cmd]
viewPhone=adb devices
startServer=adb start-server
stopServer=adb kill-server
install=adb install aaa.apk
id=1
weight=12.1
isChoice=True
 
#  定义log分组
[log]
log_error=true


在test_config.py中编写读取配置文件的脚本代码


import configparser
 
#  实例化configParser对象
config = configparser.ConfigParser()
# -read读取ini文件
config.read('config.ini', encoding='GB18030')
# -sections得到所有的section,并以列表的形式返回
print('sections:' , ' ' , config.sections())
 
# -options(section)得到该section的所有option
print('options:' ,' ' , config.options('config'))
 
# -items(section)得到该section的所有键值对
print('items:' ,' ' ,config.items('cmd'))
 
# -get(section,option)得到section中option的值,返回为string类型
print('get:' ,' ' , config.get('cmd', 'startserver'))
 
# -getint(section,option)得到section中的option的值,返回为int类型
print('getint:' ,' ' ,config.getint('cmd', 'id'))
print('getfloat:' ,' ' , config.getfloat('cmd', 'weight'))
print('getboolean:' ,'  ', config.getboolean('cmd', 'isChoice'))
"""
首先得到配置文件的所有分组,然后根据分组逐一展示所有
"""
for sections in config.sections():
    for items in config.items(sections):
        print(items)


执行结果:



C:\Users\think\.virtualenvs\RDPGUI-Oi_XG-yi\Scripts\python.exe D:/树莓派开发/RDPGUI/test/test_config.py
sections:   ['config', 'cmd', 'log']
options:   ['platformname', 'apppackage', 'appactivity']
items:   [('viewphone', 'adb devices'), ('startserver', 'adb start-server'), ('stopserver', 'adb kill-server'), ('install', 'adb install aaa.apk'), ('id', '1'), ('weight', '12.1'), ('ischoice', 'True')]
get:   adb start-server
getint:   1
getfloat:   12.1
getboolean:    True
('platformname', 'Android')
('apppackage', 'com.romwe')
('appactivity', 'com.romwe.SplashActivity')
('viewphone', 'adb devices')
('startserver', 'adb start-server')
('stopserver', 'adb kill-server')
('install', 'adb install aaa.apk')
('id', '1')
('weight', '12.1')
('ischoice', 'True')
('log_error', 'true')
Process finished with exit code 0

二、写入配置文件

import configparser

#  实例化configParser对象
config = configparser.ConfigParser()
# -read读取ini文件
config.read('config.ini', encoding='GB18030')
list = []
list = config.sections()  # 获取到配置文件中所有分组名称
if 'type' not in list:  # 如果分组type不存在则插入type分组
    config.add_section('type')
    config.set('type', 'stuno', '10211201')  # 给type分组设置值

# config.remove_option('type', 'stuno')  # 删除type分组的stuno
# config.remove_section('tpye')  # 删除配置文件中type分组
o = open('config.ini', 'w')
config.write(o)
o.close()  # 不要忘记关闭

猜你喜欢

转载自blog.51cto.com/yuweibing/2448603