当前位置: 首页 > wzjs >正文

免费在线网站建设南宁企业官网seo

免费在线网站建设,南宁企业官网seo,找人做自建房图纸去哪个网站,南通的网站建设目录 一、快速安装 二、模块简介 三、INI文件格式 四、基础用法 1 创建配置文件 2 读取配置文件 3 访问配置项 4 常用方法 五、高级功能 1 数据类型处理 2 默认值与回退 3 插值功能 4 自定义解析器 六、错误处理 七、最佳实践 八、完整示例 九、 注意事项 十、…

目录

 一、快速安装

二、模块简介

三、INI文件格式

四、基础用法

1 创建配置文件

2 读取配置文件

3 访问配置项

4 常用方法

五、高级功能

1 数据类型处理

2 默认值与回退

3 插值功能

4 自定义解析器

六、错误处理

七、最佳实践

八、完整示例

九、 注意事项

十、总结


 🚀 个人主页:xmp65535

🚀 专栏:python技术专栏


configparser 是 Python 标准库中用于处理 INI 格式配置文件 的模块。它可以帮助你轻松读取、修改和生成配置文件,适用于保存程序设置、数据库连接信息等场景。


 一、快速安装

configparser 是 Python 内置模块,无需额外安装,直接导入即可:

import configparser

二、模块简介

configparser 是Python标准库中用于处理INI格式配置文件的模块,支持:

  • 多级配置节(Section)

  • 类型自动转换

  • 插值表达式

  • 注释处理

  • 配置项验证

import configparser
print(configparser.__version__)  # 输出模块版本

三、INI文件格式

典型结构示例:

[DEFAULT]
server_ip = 127.0.0.1
port = 8080[database]
; MySQL配置
host = localhost
user = admin
password = secret
timeout = 5.5
ssl_enabled = true[logging]
level = INFO
handlers = console, file

四、基础用法

1 创建配置文件

config = configparser.ConfigParser()# 创建DEFAULT节(特殊节)
config['DEFAULT'] = {'debug': 'False','max_retries': '3'
}# 添加新节
config['database'] = {'host': 'localhost','port': '3306'
}# 单独添加配置项
config['webapp'] = {}
config['webapp']['thread_pool'] = '10'# 写入文件
with open('app_config.ini', 'w') as f:config.write(f)

生成文件内容:

[DEFAULT]
debug = False
max_retries = 3[database]
host = localhost
port = 3306[webapp]
thread_pool = 10

2 读取配置文件

config = configparser.ConfigParser()# 读取单个文件
config.read('app_config.ini')# 读取多个文件
found_files = config.read(['app_config.ini', 'override.ini'])
print("成功加载的文件:", found_files)# 安全加载(文件不存在不报错)
try:config.read('nonexistent.ini', encoding='utf-8')
except FileNotFoundError:print("文件不存在")

3 访问配置项

# 检查节是否存在
print('database' in config)  # True# 获取所有节(排除DEFAULT)
sections = config.sections()
print(sections)  # ['database', 'webapp']# 获取配置项
print(config['database']['host'])  # localhost# 安全获取(带默认值)
timeout = config.get('database', 'timeout', fallback='10')
print(timeout)  # 使用DEFAULT节的timeout或返回10# 获取所有键值对
for key in config['database']:print(f"{key} = {config['database'][key]}")

4 常用方法

方法作用示例
sections()获取所有 Section 名称config.sections()
options(section)获取某个 Section 的所有键名config.options('DATABASE')
get(section, key)获取字符串类型的值config.get('DATABASE', 'host')
getint(section, key)获取整型值(自动转换)config.getint('DATABASE', 'port')
getfloat(section, key)获取浮点型值config.getfloat(...)
getboolean(section, key)获取布尔值(支持 yes/notrue/falseconfig.getboolean(...)
add_section(section)添加新 Sectionconfig.add_section('NEW_SECTION')
remove_section(section)删除 Sectionconfig.remove_section(...)
set(section, key, value)修改或新增键值对config.set('DATABASE', 'host', '192.168.1.1')

五、高级功能

1 数据类型处理

# 自动类型转换
config['DEFAULT']['max_retries'] = '3'
config['DEFAULT']['ratio'] = '0.85'
config['DEFAULT']['ssl_enabled'] = 'true'print(config.getint('DEFAULT', 'max_retries'))  # 3
print(config.getfloat('DEFAULT', 'ratio'))     # 0.85
print(config.getboolean('DEFAULT', 'ssl_enabled'))  # True# 自定义转换器
def parse_size(value):units = {"KB": 1024, "MB": 1024**2, "GB": 1024**3}number, unit = value.split()return int(float(number) * units[unit])config['storage'] = {'max_size': '2.5 GB'}
size = parse_size(config['storage']['max_size'])
print(size)  # 2684354560

2 默认值与回退

# 全局默认值
config = configparser.ConfigParser(defaults={'loglevel': 'WARNING','retries': '3'
})# 节内默认值
config['DEFAULT']['timeout'] = '30'# 多层回退
value = config.get('api', 'timeout', fallback=config['DEFAULT']['timeout'])

3 插值功能

config = configparser.ConfigParser(interpolation=configparser.ExtendedInterpolation())config['DEFAULT'] = {'home_dir': '/var/app','data_dir': '%(home_dir)s/data'
}config['paths'] = {'log_dir': '${home_dir}/logs','temp_dir': '${paths:log_dir}/temp'
}print(config['paths']['temp_dir'])  # /var/app/logs/temp

4 自定义解析器

class MyConfigParser(configparser.ConfigParser):def optionxform(self, optionstr):"""保持键的大小写敏感"""return optionstrdef _validate(self, section, option, value):"""自定义验证逻辑"""if option == 'port' and not (0 < int(value) <= 65535):raise ValueError("Invalid port number")super()._validate(section, option, value)custom_parser = MyConfigParser()

六、错误处理

try:print(config['nonexistent_section']['option'])
except configparser.NoSectionError:print("配置节不存在!")try:value = config.get('database', 'invalid_option')
except configparser.NoOptionError:print("配置项不存在!")# 安全访问方法
value = config.get('database', 'invalid_option', fallback='default_value')

七、最佳实践

  1. 配置组织规范

    # ini文件[production]
    ; 继承DEFAULT并覆盖
    database.host = db.prod.example.com[staging:production]
    ; 继承production配置
    database.host = db.stage.example.com
  2. 敏感信息处理

    # 从环境变量读取密码
    import os
    config['database']['password'] = os.getenv('DB_PASSWORD')
  3. 配置版本控制

    # ini[metadata]
    config_version = 1.2
     

    八、完整示例

    import configparser# 初始化配置
    config = configparser.ConfigParser(interpolation=configparser.ExtendedInterpolation())# 创建默认配置
    defaults = {'threads': '4','log_level': 'INFO'
    }
    config.read_dict({'DEFAULT': defaults})# 读取多个配置文件
    config.read(['base_config.ini', 'override.ini'])# 访问配置
    try:db_config = {'host': config['database']['host'],'port': config.getint('database', 'port'),'user': config['database']['user'],'password': config['database']['password']}
    except configparser.Error as e:print(f"配置错误: {e}")exit(1)# 动态更新配置
    if config.getboolean('debug', 'enabled'):config['DEFAULT']['log_level'] = 'DEBUG'# 保存用户自定义配置
    user_config = configparser.ConfigParser()
    user_config['user_prefs'] = {'theme': 'dark','notifications': 'yes'
    }
    with open('user.ini', 'w') as f:user_config.write(f)

    九、 注意事项

    1. 文件路径问题
      确保配置文件路径正确(建议使用绝对路径或检查当前工作目录)。

    2. 键值不存在时的处理
      使用 get() 方法时,如果键不存在会抛出 NoOptionError。可以通过以下方式避免:

      # 提供默认值
      timeout = config.get('DATABASE', 'timeout', fallback=30)
    3. 大小写敏感
      默认情况下键名是 不区分大小写 的(全部转为小写)。如需保留大小写,初始化时设置:

      config = configparser.ConfigParser(allow_no_value=True, strict=True)
    4. 注释和空行
      INI 文件支持以 # 或 ; 开头的注释,空行会被自动忽略。

    十、总结

    • 适用场景:中小型项目的配置管理,需要人类可读的简单配置文件。

    • 替代方案:复杂场景可考虑 JSON/YAML 格式(使用 json 或 pyyaml 模块)。

    • 优势:简单易用,无需第三方依赖,兼容 INI 标准格式。

    通过 configparser,你可以轻松实现配置与代码分离,让程序更灵活、更易维护!

    http://www.dtcms.com/wzjs/79949.html

    相关文章:

  1. 合肥城乡建设委员会网站打不开东莞seo靠谱
  2. 做微商有什么好的货源网站推广app大全
  3. PHP做的哪些大型网站今日油价最新
  4. 营销型网站建设套餐宁波seo费用
  5. 免费建立小程序网站天津seo外包
  6. 江西省南昌市建筑工程网佛山网络公司 乐云seo
  7. 市场监督管理局电话seo排名优化app
  8. 做网站编辑校对2023年又封城了
  9. 体育如何做原创视频网站东莞精准网络营销推广
  10. 丹阳网站建设策划免费b站推广网站不用下载
  11. 济南环保局官方网站aso优化排名
  12. 局域网端口映射做网站百度关键词工具入口
  13. 网站建设 英文版淘宝店铺运营推广
  14. 做网站_接活网站宣传方式有哪些
  15. 潍坊建设厅官方网站网络营销课程报告
  16. 做网站都需要考虑哪些网店网络推广方案
  17. 专业商城网站制作公司seo排名优化推广报价
  18. 网站建设设计视频aso关键词搜索优化
  19. 做公司网站要钱吗seo推广优化外包价格
  20. 怎么用wordpress做网站b站视频推广网站
  21. 怎样给网站做排名优化seo推广优化工具
  22. 上海专业网站建设价格流量平台
  23. 网站开发的成本百度一下官网首页百度
  24. 黎明网站建设与管理试卷b百度信息流投放
  25. 怎么模板建站冯耀宗seo视频教程
  26. 昆明网站搜索引擎优化查排名官网
  27. 广州信息网站长工具seo综合查询下载
  28. 网站用花生壳nas做存储网络营销与直播电商专业就业前景
  29. 社交手机网站开发seo工具是什么意思
  30. 域名停靠app免费下载网站山西百度查关键词排名