繁体   English   中英

Python/configparser文件数据读取

[英]Python / configparser file data reading

我在从文件中读取数据时遇到了一些问题。 我想通过 function 从.ini数据文件中获取属性,但configparser无法正确读取它。 如果有人能解释这是错误的,我将不胜感激。 先感谢您!

Function 片段

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)

my.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 function 在您给它一个字符串数据类型时,在 filetypes 参数中需要一个元组。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM