# config.ini文件内容
# 定义mongo分组
[mongodb]
host = localhost
port = 27017
data = xuexiao
# 定义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_debug=true
log_path=/home/webic/qly/Projects/TinyScan/dev/v1.6_TinyScan/log/
# 在程序中读取配置文件
"""
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,
所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。
['程序本身', '用户输入的第一个外部参数','用户输入的第一个外部参数'] **
config_path = sys.argv[sys.argv.index('-f')+1]这一句的意思是用户执行文件时比如 test.py -f /home/ubunt/config.ini 那么获取-f后面的路径
sys.argv详细看https://blog.csdn.net/program_developer/article/details/78647916
"""
# 配置文件路径
config_path = './config.ini'
if '-f' in sys.argv:**
config_path = sys.argv[sys.argv.index('-f')+1]
config = configparser.ConfigParser()
config.read(config_path)**
config_mongodb_host = config.get('mongodb', 'host')
config_mongodb_port = config.getint('mongodb', 'port')
config_log_debug = config.getboolean('log', 'debug')
import configparser**
# -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)