Python: 检查ConfigParser 键是否不为空
Python: Check if ConfigParser key is not empty
如何检查 ConfigParser 密钥中是否包含内容?
我不想检查密钥是否存在,我想知道它是否有任何价值。
示例config.ini
[optionalConfigs]
option1 = something
option2 = 38
option3 = ;empty
示例脚本
import configparser
config = configparser.ConfigParser()
config.read(config.ini)
# None of this gave me output
if config.get('optionalConfigs', 'option1'):
print("Option 1 has content")
if config.get('optionalConfigs', 'option2'):
print("Option 2 has content")
if config.get('optionalConfigs', 'option3'):
print("Option 3 has content")
有一个 ConfigParser 内置函数,或者我需要做其他事情?
下面是 ConfigParser get
代码。
如您所见,可以抛出 2 个异常:
NoSectionError - 找不到节时
NoOptionError - 当找不到选项时
def get(self, section, option):
opt = self.optionxform(option)
if section not in self._sections:
if section != DEFAULTSECT:
raise NoSectionError(section)
if opt in self._defaults:
return self._defaults[opt]
else:
raise NoOptionError(option, section)
elif opt in self._sections[section]:
return self._sections[section][opt]
elif opt in self._defaults:
return self._defaults[opt]
else:
raise NoOptionError(option, section)
有一个选项。默认情况下,解析器不允许内联注释。在你的例子中
option3 = ;empty
option3
的值为 ";empty"
。您可以使用可用作内联注释的字符串列表来更改它
config = configparser.ConfigParser(inline_comment_prefixes=[";"])
现在 option3
的值将是一个空字符串,就好像您已经配置了
option3 =
请注意,由于该选项具有等号,因此您将所有内容分配给右侧,这是一个空字符串。如果你只是配置
option3
这会引发错误,因为没有分配任何值。也可以配置该行为,但那是另一回事了。
如何检查 ConfigParser 密钥中是否包含内容?
我不想检查密钥是否存在,我想知道它是否有任何价值。
示例config.ini
[optionalConfigs]
option1 = something
option2 = 38
option3 = ;empty
示例脚本
import configparser
config = configparser.ConfigParser()
config.read(config.ini)
# None of this gave me output
if config.get('optionalConfigs', 'option1'):
print("Option 1 has content")
if config.get('optionalConfigs', 'option2'):
print("Option 2 has content")
if config.get('optionalConfigs', 'option3'):
print("Option 3 has content")
有一个 ConfigParser 内置函数,或者我需要做其他事情?
下面是 ConfigParser get
代码。
如您所见,可以抛出 2 个异常:
NoSectionError - 找不到节时
NoOptionError - 当找不到选项时
def get(self, section, option): opt = self.optionxform(option) if section not in self._sections: if section != DEFAULTSECT: raise NoSectionError(section) if opt in self._defaults: return self._defaults[opt] else: raise NoOptionError(option, section) elif opt in self._sections[section]: return self._sections[section][opt] elif opt in self._defaults: return self._defaults[opt] else: raise NoOptionError(option, section)
有一个选项。默认情况下,解析器不允许内联注释。在你的例子中
option3 = ;empty
option3
的值为 ";empty"
。您可以使用可用作内联注释的字符串列表来更改它
config = configparser.ConfigParser(inline_comment_prefixes=[";"])
现在 option3
的值将是一个空字符串,就好像您已经配置了
option3 =
请注意,由于该选项具有等号,因此您将所有内容分配给右侧,这是一个空字符串。如果你只是配置
option3
这会引发错误,因为没有分配任何值。也可以配置该行为,但那是另一回事了。