我有一个类似下面的config.ini文件:
[LABEL]
NAME = "eventName"
我把它读进了我的python代码中,如下所示,然而,当我把它和完全相同的字符串进行比较时,结果是False
,我想知道我是否应该用不同的方式来读它,或者我需要做些别的事情?
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
my_label_name = config['LABEL']['name']
print("My label is: ", my_label_name, " and has type of: ", type(my_label_name))
My label is: "eventName" and has type of: <class 'str'>
print(my_label_name == "eventName")
False
3条答案
按热度按时间col17t5w1#
默认情况下,配置解析器将配置文件中的内容作为字符串读取。在配置文件中,不需要单引号和双引号来表示字符串。引号本身将被视为单独的字符。
在你的程序中,如果你观察得当,你可以看到值是用引号打印出来的。所以***eventName***和***“eventName”是不一样的。这就是为什么你得到的结果是***False。你的程序的屏幕截图如下所示。
因此,解决方案是从配置文件中删除双引号,或者在阅读值时删除双引号。
更新后的配置文件如下所示。
如果你不能从配置文件中删除双引号,你需要在程序中处理它。下面给出了示例代码片段。
0qx6xfy62#
我想你应该把这句话改一下:
改为:
lb3vh1jj3#
config['LABEL']['name']
的内容是一个包含"eventName"
并带有双引号的字符串。单引号(
'
)和双引号("
)在INI中是不必要的,因为在INI中所有内容都是字符串。演示: