给定以下格式(.properties或.ini):propertyName1=propertyValue1propertyName2=propertyValue2...propertyNameN=propertyValueN对于Java有Properties提供解析/与上述格式交互的功能的类。python的standard库(2.x)中是否有类似的东西?如果没有,我还有什么其他选择? 最佳答案 我能够让它与ConfigParser一起工作,没有人展示任何关于如何做到这一点的示例,所以这里是一个简单的属性文件的python阅读器和属性
我注意到在我的源代码控制中,使用ConfigParser生成的输出文件的内容从不按相同的顺序排列。有时,即使没有对值进行任何修改,部分也会更改部分内的位置或选项。有没有办法让配置文件中的内容保持有序,这样我就不必在每次启动我的应用程序时都提交琐碎的更改? 最佳答案 看起来这已在Python3.1中修复和2.7引入了有序字典:Thestandardlibrarynowsupportsuseofordereddictionariesinseveralmodules.Theconfigparsermoduleusesthembydefau
所以,我有这个settings.ini:[SETTINGS]value=1还有这个python脚本fromConfigParserimportSafeConfigParserparser=SafeConfigParser()parser.read('settings.ini')printparser.get('SETTINGS','value')如您所见,我想读取值“1”,然后将其替换为另一个值。到目前为止,我所能做的就是阅读它。我在网上搜索如何更换它,但没有找到。 最佳答案 来自文档的示例:https://docs.python.
我读了thedocs的部分并看到ConfigParser返回一个部分中选项的键/值对列表。我认为键在一个部分中不需要是唯一的,否则解析器只会返回一个映射。我围绕这个假设设计了我的配置文件架构,然后遗憾地意识到情况并非如此:>>>fromConfigParserimportConfigParser>>>fromStringIOimportStringIO>>>fh=StringIO("""...[SomeSection]...spam:eggs...spam:ham...""")>>>parser=ConfigParser()>>>parser.readfp(fh)>>>printpar
我正在创建每日报价服务器。我正在阅读INI文件中的选项,其文本如下:[Server]host=port=17[Quotes]file=quotes.txt但是,当我使用ConfigParser时,它给我这个错误:Traceback(mostrecentcalllast):File"server.py",line59,inStart()File"server.py",line55,inStartconfigOptions=parseConfig(filename)File"server.py",line33,inparseConfigserver=config['Server']Attr
每次您尝试在Python中使用configparser获取或设置一个部分时,如果该部分不存在,它会抛出一个NoSectionError。无论如何要避免这种情况?另外,我是否也可以在获取选项时避免NoOptionError?例如,使用字典,有setdefault选项:当键不存在时,字典不会抛出KeyError,而是添加键,设置key的值设置为默认值,并返回默认值。我目前正在执行以下操作来获取属性:defread_config(section):config=configparser.ConfigParser()config.read(location)try:apple=config.g
如何使用pythonconfigparser模块解析ini文件中没有值的标签?比如我有如下ini,需要解析rb.在某些ini文件中,rb具有整数值,而在某些文件中根本没有值,如下例所示。我如何使用configparser做到这一点而不会出现值错误?我使用getint函数[section]person=nameid=000rb= 最佳答案 您需要在创建解析器对象时设置allow_no_value=True可选参数。 关于python-如何使用ConfigParser处理配置文件中的空值?,
我使用ConfigParser模块编写配置文件已有一段时间了。但是,最近有一个想法打动了我;为什么不直接使用纯Python呢?以这个示例配置文件为例:[parameters]#Hosthost=stackoverflow.comport=22为了将这些值读入我的代码,我这样做了importConfigParserconfig=ConfigParser.SafeConfigParser()config.read('host.cfg')host=config.get('parameters','host')port=config.get('parameters','port')另一方面,如
ConfigParser和SafeConfigParser有什么区别?确切地说,为什么后者更安全?ConfigParser的“不安全”是什么?我知道SafeConfigParser继承了ConfigParser,它有什么不同? 最佳答案 SafeConfigParser实现不同的set(section,option,value)方法,该方法将引发NoSectionError如果该部分不存在,如果value不是字符串,则返回TypeError。这允许更多地控制解析器的行为,example来自文档:try:config.set(sect
使用PythonConfigParser,是否可以跨外部部分使用插值?我的想法似乎告诉我,我在某处看到它是可能的,但我在搜索时找不到它。此示例不起作用,但它可以让您了解我正在尝试做什么。[section1]root=/usr[section2]root=/usr/local[section3]dir1=$(section1:root)/bindir2=$(section2:root)/bin请注意,我使用的是Python2.4。 最佳答案 在python3.2及更高版本中,这是完全有效的:[Common]home_dir:/User