微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python/configparser文件数据读取

如何解决Python/configparser文件数据读取

我在从文件中读取数据时遇到了一些问题。我想通过函数.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","*.*"))
  

解决方法

Config parsers do not guess datatypes of values in configuration files,always storing them internally as strings.

.ini 文件中存在的每个键值对都将被解析为字符串。

您的 filedialog.askopenfilename 函数需要在 filetypes 参数中包含一个元组,而您为其提供字符串数据类型。

,

正如 Nirmal Dey 指出的那样,ConfigParser 只会返回字符串值。您必须使用例如将它们转换为 Python 类型ast.literal_eval

FWIW,我编写了一个名为 configdot 的小包来解析 INI 文件。它将自动返回 Python 类型,并允许对配置变量进行属性样式访问(例如 config.select.ft 在您的情况下)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。