Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中循环ConfigParser时,如何停止重复不需要的值?_Python_Loops_Config_Ini_Configparser - Fatal编程技术网

在Python中循环ConfigParser时,如何停止重复不需要的值?

在Python中循环ConfigParser时,如何停止重复不需要的值?,python,loops,config,ini,configparser,Python,Loops,Config,Ini,Configparser,我正在尝试使用configParser上载.ini文件。一切都很好,直到我得到一个嵌套循环。我试图在每个文件中找到键值,然后在该文件的每个部分中,打印出键值对 for i in iniFiles: config.read(i) for j in config.sections(): if config.has_option(j, description): print(j + ':', config[j][descripti

我正在尝试使用configParser上载.ini文件。一切都很好,直到我得到一个嵌套循环。我试图在每个文件中找到键值,然后在该文件的每个部分中,打印出键值对

for i in iniFiles:
    config.read(i)        
    for j in config.sections():
        if config.has_option(j, description):
            print(j + ':', config[j][description])

在本例中,
iniFiles
是一个字符串列表,其中包含指向我试图查看的每个文件的路径<代码>说明是我试图搜索的密钥。我不断循环浏览几个不同的文件,无论出于什么原因,当我打印出它们的键值时,其中一个文件不断重复。为什么呢

config.read函数的工作方式与您可能认为的不同。它处理您指定的文件,但将结果与解析器的现有内容合并。它不会重新初始化解析器的内容。因此,如果您像这里所做的那样解析多个文件,那么每个新文件只是将其内容与解析器的现有状态合并。你认为它在一遍又一遍地读取同一个文件,但它并没有这样做。它只是保留了以前的所有结果

简单的解决方案是一次读取所有文件,然后在单独的循环中进行打印。或者,您可以为每个文件创建一个新的(因此是空的)ConfigParser实例。我不知道哪种解决方案最适合你

仅供参考,read函数可以在一个步骤中处理文件名列表,这将消除外部循环。请阅读该功能的文档。

您能提供一个、一个和当前输出吗?