寻找

2017-02-10 58 views
2

蟒蛇新手列表之间的共性 -寻找

我有一个包含用户从多个AD组的多个文本文件,我需要通过每个文档和用户组(用户名)通过其组成员解析:例如: 市场营销文档具有Marketing_grp:

John, Bob, Sally 

销售DOC具有Sales_grp:

Bob, Ron, Jeff 

技术文档有Technology_grp:

Bob, Mike, Sally 

我需要能够看到Bob和莎莉属于多个组,我需要知道这些群体,我怎么能做到这一点与Python?

在文本文件中的数据是电子邮件地址的形式在[email protected]

#AD Group Usage 
import re 
from sys import argv 
import shelve 

script, filename = argv 

def ADgrps(filename): 
    f=open(filename, "r+") 
    text=f.read() 
    ad_grps = re.findall(r'[\w]+([email protected])', text) 
    return ad_grps 
+0

文本文档有多大?你能把全部3个读入内存吗? – MooingRawr

+0

大约有50个文档,其中有12个用户,其他用户有100多个用户 – Clyde

回答

2

我会做这样的事情。

import re 
import sys 

groups = {} 
for s in sys.argv[1:]: 
    with open(s) as f: 
     for t in re.findall(r"[\w]+([email protected])", f.read()): 
      if t in groups: 
       groups[t].append(s) 
      else: 
       groups[t] = [s] 

# Do stuff with the data. 

现在你有一个字典映射电子邮件,它们出现在文件中。此代码预计相关文件的名称作为命令行参数传递。

+0

优秀!非常感谢您的帮助。出于好奇,这仅仅是我需要的经验,还是有一本好书和/或课程可以推荐用于学习python? – Clyde

+1

@Clyde https://docs.python.org/3/tutorial/ – MooingRawr

+0

同上。我就是这样学习的。 –