尋找

2017-02-10 85 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

同上。我就是這樣學習的。 –