Python编程:ini配置文件读写

简介: Python编程:ini配置文件读写

导入模块

import configparser # py3

写入


config = configparser.ConfigParser()
config["DEFAULT"] = {
    'ServerAliveInterval': '45',
    'Compression': 'yes',
    'CompressionLevel': '9'
    }
config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'
config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Host Port'] = '50022'  # mutates the parser
topsecret['ForwardX11'] = 'no'  # same here
config['DEFAULT']['ForwardX11'] = 'yes'
# 写入文件
with open('example.ini', 'w') as configfile:
    config.write(configfile)

读取

config = configparser.ConfigParser()
config.read("example.ini")
print(config.defaults())
# OrderedDict([('compression', 'yes')])
print(config.sections())
# ['bitbucket.org', 'topsecret.server.com']
print(config['bitbucket.org']['User'])
# hg
print(config.options("topsecret.server.com"))
# ['port', 'compression']
print(config.items("topsecret.server.com"))
# [('compression', 'yes'), ('port', '50022')]
print(config.get("topsecret.server.com", "port"))
# 50022

修改

print(config.has_section("Name"))
# 删除
config.remove_section("Name")
# 添加
config.add_section("Name")
config["Name"]["name"] = "Tom"
config["Name"]["asname"] = "Jimi"
# 设置
config.remove_option("Name", "asname")
config.set("Name", "name", "Jack")
# 保存
config.write(open("example.ini", "w"))

附:ini文件:


[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucket.org]
user = hg
[topsecret.server.com]
host port = 50022
forwardx11 = no

help(configparser)

"""
CLASSES
    class ConfigParser(RawConfigParser)
     |  ConfigParser implementing interpolation.
     |  
     |  add_section(self, section)
     |      Create a new section in the configuration.  Extends
     |      RawConfigParser.add_section by validating if the section name is
     |      a string.
     |  
     |  set(self, section, option, value=None)
     |      Set an option.  Extends RawConfigParser.set by validating type and
     |      interpolation syntax on the value.
     |  
     |  defaults(self)
     |  
     |  get(self, section, option, *, raw=False, vars=None, fallback=<object object at 0x0000000002F42120>)
     |      Get an option value for a given section.
     |  
     |  getboolean(self, section, option, *, raw=False, vars=None, fallback=<object object at 0x0000000002F42120>)
     |  
     |  getfloat(self, section, option, *, raw=False, vars=None, fallback=<object object at 0x0000000002F42120>)
     |  
     |  getint(self, section, option, *, raw=False, vars=None, fallback=<object object at 0x0000000002F42120>)
     |  
     |  has_option(self, section, option)
     |      Check for the existence of a given option in a given section.
     |      If the specified `section' is None or an empty string, DEFAULT is
     |      assumed. If the specified `section' does not exist, returns False.
     |  
     |  has_section(self, section)
     |      Indicate whether the named section is present in the configuration.
     |  items(self, section=<object object at 0x0000000002F42120>, raw=False, vars=None)
     |      Return a list of (name, value) tuples for each option in a section.
     |  
     |  options(self, section)
     |      Return a list of option names for the given section name.
     |  popitem(self)
     |      Remove a section from the parser and return it as
     |  read(self, filenames, encoding=None)
     |      Read and parse a filename or a list of filenames.
     |      Return list of successfully read files.
     |  
     |  read_dict(self, dictionary, source='<dict>')
     |      Read configuration from a dictionary.
     |  
     |  read_file(self, f, source=None)
     |      Like read() but the argument must be a file-like object.
     |      
     |  read_string(self, string, source='<string>')
     |      Read configuration from a given string.
     |  
     |  readfp(self, fp, filename=None)
     |      Deprecated, use read_file instead.
     |  
     |  remove_option(self, section, option)
     |      Remove an option.
     |  
     |  remove_section(self, section)
     |      Remove a file section.
     |  
     |  sections(self)
     |      Return a list of section names, excluding [DEFAULT]
     |  
     |  write(self, fp, space_around_delimiters=True)
     |      Write an .ini-format representation of the configuration state.
     |  
     |  clear(self)
     |      D.clear() -> None.  Remove all items from D.
     |  
     |  pop(self, key, default=<object object at 0x0000000002F42040>)
     |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
     |      If key is not found, d is returned if given, otherwise KeyError is raised.
     |  
     |  setdefault(self, key, default=None)
     |      D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
     |  
     |  update(*args, **kwds)
     |      D.update([E, ]**F) -> None.  Update D from mapping/iterable E and F.
     |      If E present and has a .keys() method, does:     for k in E: D[k] = E[k]
     |      If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = v
     |      In either case, this is followed by: for k, v in F.items(): D[k] = v
     |  
     |  keys(self)
     |      D.keys() -> a set-like object providing a view on D's keys
     |  
     |  values(self)
     |      D.values() -> an object providing a view on D's values
     |  
"""

相关文章
|
1月前
|
IDE 开发工具 开发者
手把手教你安装PyCharm 2025:开发者的Python IDE配置全流程+避坑指南
本教程详细介绍了PyCharm 2025版本在Windows系统下的安装流程及配置方法,涵盖AI代码补全与智能调试工具链等新功能。内容包括系统要求、安装步骤、首次运行配置(如主题选择与插件安装)、创建首个Python项目,以及常见问题解决方法。此外,还提供了切换中文界面和延伸学习资源的指导,帮助用户快速上手并高效使用PyCharm进行开发。
813 60
|
2月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
96 28
|
1月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
85 23
|
2月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
50 4
|
2月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
2月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
2月前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
2月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
|
2月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
2月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。

热门文章

最新文章