我在从文件中读取数据时遇到了一些问题。我想让.ini数据文件中的属性被函数红色,但是configparser解析器没有正确读取它。如果有人能解释这是错误的,我将非常感激。提前谢谢你!
函数片段
config = configparser.ConfigParser()
config.read('config.ini')
def browseFiles():
filename = filedialog.askopenfilename(initialdir = config['select']['dir'],
title = config['select']['ttl'],
filetypes = config['select']['ft'])
# Change label contents
label_file_explorer.configure(text="File Opened: "+filename)我的.ini文件数据
[select]
#directory
dir = "home/"
#title
ttl = "Select a File"
#filetype
ft = (("Text files","*.txt*"),("all files","*.*"))发布于 2021-05-03 12:00:41
正如Nirmal所指出的,ConfigParser只返回字符串值。您必须使用例如ast.literal_eval将它们转换为Python类型。
FWIW,我编写了一个名为[化]结构点的小包,用于解析INI文件。它将自动返回Python类型,并允许属性样式访问配置变量(例如,在您的例子中是config.select.ft )。
发布于 2021-05-03 11:07:14
Config parsers do not guess datatypes of values in configuration files, always storing them internally as strings.
.ini文件中的每个键值对都将被解析为一个字符串。
函数在为filedialog.askopenfilename提供字符串数据类型时,需要在filetypes参数中使用一个元组。
https://stackoverflow.com/questions/67367637
复制相似问题