2017-05-15 64 views
0

我在具有数据的目录中有文本文件。我正在看填充一个字典,其中键是文本文件的名称,以及包含文件数据的相应项目。 我想在词典中的名称键的顺序反映在剧目中创建测试文件的顺序。我用 的代码是:根据python中创建文件的日期排序字典键

date_file_list = [] 
for filename in files: 
    stats = os.stat(filename) 
    lastmod_date = time.localtime(stats[8]) 
    date_file_tuple = lastmod_date, filename 
    date_file_list.append(date_file_tuple) 
date_file_list.sort() 
date_file_list_array = np.asarray(date_file_list) 
File2Array = {} 
for filename in date_file_list_array[0:20,1]: 
    print(filename) 
    File2Array.setdefault(filename,OpenandReadOO(filename)) 

OpenandReadOO是打开和读取与名文件名的文件,并填写一个numpy的阵列Python函数。

不幸的是,即使list_date_file_list和date_file_list_array被正确排序,当遍历它们时(看起来按照正确的顺序),结果字典总是没有排序。

我应该如何继续按照正确的顺序获取带有项目(和数据)的字典?

感谢

格雷格

+1

你不能。 Python的字典本质上是无序的。使用'collections.OrderedDict'代替,并看看这个问题的第一个答案:http://stackoverflow.com/questions/9001509/how-can-i-sort-a-dictionary-by-key – StefanS

回答

0

你应该使用有序字典:

from collections import OrderedDict 

res = OrderedDict() 

for filename in date_file_list_array[0:20,1]: 
    print(filename) 
    res.__setitem__(filename,OpenandReadOO(filename)) 
+0

它完美的工作谢谢。 – gregory