2016-07-07 169 views
0

首先蟒蛇2.7.11Python的字典追加被覆盖前一个键:值

概述,我收集的目录名称在给定的路径,并把它们传递到子CMD。从该子进程中,我逐行遍历输出,目录名称是键,subprocess.stdout是值。

我需要的是保持键相同,但保存唯一值并将它们添加到字典中,以便稍后可以写入csv。

将其显示2个方法的代码片断我已经尝试过(一个被注释掉)。两者都覆盖字典中现有的key:值。

data = [] 
for dname in listdir(path): 
    header = dname 
    if isfile: 
     entrydict = dict() 
     cmd = "ct lsh -fmt \"%u \\n\" -since 01-Oct-2015 -all " + dname 
     # output of cmd is "name \r\n" 
     p1 = subp.Popen(cmd, stdout=subp.PIPE, stderr=subp.PIPE) 
     usr = [] 
     for name in iter(p1.stdout.readline, ''): 
      if name.rstrip() not in usr: 
       usr.append(name.rstrip()) 
      else: 
       entrydict[header] = usr 

     for n in usr: 
      entrydict[header] = n 
      data.append(entrydict) 

谢谢!

+1

字典一次只能取一个唯一的字典。所以你不能将所有的值赋给key'header'。 –

回答

1

是的,你可以收集所有的唯一值的像names = ['f0', 'f1', 'f2']列表,然后将其与header分配给你的字典作为重点喜欢

entrydict[header] = names 

只要确保所有的header是不同的。