首先是python 2.7.11
概述,我正在收集给定路径中的目录名称并将它们传递给子进程cmd。从那个子流程我逐行迭代输出,目录名是键,subprocess.stdout是值。
我需要的是保持密钥相同但保存唯一值并将它们添加到dict中,以便稍后我可以写入csv。
显示代码,显示我已经尝试过的两种方法(一种是注释掉的)。两者都覆盖了现有的key:dict中的值。
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)
谢谢!
答案 0 :(得分:2)
是的,您可以将所有唯一值收集为names = ['f0', 'f1', 'f2']
之类的列表,然后将header
作为关键字分配给您的词典
entrydict[header] = names
确保所有header
都不同。