首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >循环遍历不同的python字典-错误的结果?

循环遍历不同的python字典-错误的结果?
EN

Stack Overflow用户
提问于 2019-06-06 02:40:50
回答 1查看 36关注 0票数 0

我使用的是Python 2.7,顺便说一下..

假设我有两个目录,我想为它们创建字典。每个目录中的文件都被命名为YYYYMMDD.hhmmss,并且都是不同的,并且每个目录的大小也不同:

 path1 = /path/to/folders/to/make/dictionaries
 dir1 = os.listdir(path1)

我还有另一个静态目录,其中包含一些要比较的文件

 gpath1 = /path/to/static/files
 gdir1 = os.listdir(gpath1)
 dir1_file_list = [datetime.strptime(g, '%Y%m%d.%H%M%S') for g in gdir1]

因此,我在gdir2中有一个静态文件目录,现在我想遍历dir1中的每个目录,并创建一个惟一的字典。代码如下:

 for i in range(0,len(dir1)):
    path2 = path1 + "/" + dir1[i]
    dir2 = os.listdir(path2)
    dir2_file_list = [datetime.strptime(r, '%Y%m%d.%H%M%S') for r in dir2]

    # Define a dictionary, and initialize comparisons
    dict_gr = []
    dict_gr = dict()
    for dir1_file in dir1_file_list:
        dict_gr[str(dir1_file)] = []

        # Look for instances within the last 5 minutes
        for dir2_file in dir2_file_list:
            if 0 <= (dir1_file - dir2_file).total_seconds() <= 300:
                dict_gr[str(dir1_file)].append(str(dir2_file))    

        # Sort the dictionaries
    for key, value in sorted(dict_gr.iteritems()):
        dir2_lib.append(key)
        dir1_lib.append(sorted(value))

问题是path2和dir2都正确地转到不同的文件夹并获取必要的文件名,并且创建dict_gr都会很好地工作。但是,当我转到脚本中对字典进行排序的部分时,循环经过的第二个目录将包含第一个目录的内容。第三个循环字典将包含第一个和第二个目录的内容,依此类推。换句话说,它们与每个目录不是唯一匹配的。

有什么想法吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56466276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档