2017-02-10 5 views
2

питон новичку -ищет общность между списками

У меня есть несколько текстовых документов, содержащих пользователей из нескольких групп AD, мне нужно разобрать через каждый документ и группы пользователей (логины) их принадлежности к группе: например: Маркетинг документ имеет Marketing_grp:

John, Bob, Sally 

продаж документ имеет Sales_grp:

Bob, Ron, Jeff 

Технология документ имеет Technology_grp:

Bob, Mike, Sally 

мне нужно, чтобы быть в состоянии видеть, что оба Боб и Салли принадлежат к нескольким группам, и мне нужно знать, что эти группы, как я могу сделать это с 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

То же. Вот как я узнал. –

Смежные вопросы