输入文件Test.ini:
;INTEGRITY_PERIOD=300
INTEGRITY_PERIOD=100
代码:
key = None
value = None
with open('hmi.ini', 'r') as inifile:
for line in inifile:
if line.startswith(';INTEGRITY_PERIOD='):
continue;
if line.startswith('INTEGRITY_PERIOD='):
key, value = line.split("=")
break
if value and value.isdigit():
print(value)
else:
print(300)
以上代码总是返回300.看起来像isdigit()不起作用或我的代码有什么问题吗?
答案 0 :(得分:5)
您的行以行分隔符结尾,您没有删除。剥离线条以从开头和结尾删除空格:
key, value = line.strip().split("=")
行分隔符(\n
)不是数字:
>>> '100\n'.isdigit()
False
>>> '100'.isdigit()
True
不要构建自己的解析器,而应考虑使用标准库中的configparser
module。它完全支持INI格式(包括使用;
作为注释)。