Как открыть несколько файлов в каталоге, используя python с подстановочными знаками - PullRequest
0 голосов
/ 16 октября 2018

У меня есть эти файлы из события захвата флага, DEFCON 22:

balalaikacr3w_00001_20140808100030.cap
balalaikacr3w_00001_20140809100255.cap
mmibh_00115_20140809193255.cap
mmibh_00116_20140808193530.cap

и многих других.Изменений в именах команд не будет, но у каждой команды есть несколько файлов в диапазоне от 00001 до 00125, которые отображаются после названия команды.Затем в файле также отображается дата (Г / М / Д) как 20140808. Меняется день, а не год или месяц.

Я ищу способ динамически открывать каждый файл, чтобы прочитать егоИнформация.У меня также есть эти команды в одном каталоге.Я хочу использовать групповой символ, чтобы получить команду и день.Вот код, который я сделал в bash:

ls | awk '/balala*/ && /20140808/' | while read line;

Мне нужно перевести это на python и, если возможно, использовать словарь.Вот то, что у меня есть.

def main():

teams = {'balalaikacr3w':1,'binja':2,'blue-lotus':3,'codered':4,'dragonsector':5,'gallopsled':6
,'hackingforchimac':7,'hitcon':8,'kaist':9,'mmibh':10,'mslc':11,'oracle':12,'penthackon':13,'ppp':14
,'raon_asrt':15,'reckless':16,'routards':17,'shellphish':18,'stratum':19,'team9447':20,'w3stormz':21}

for key in sorted(teams.iterkeys()):
    print (teams[key],": ", key, sep='')

x = str(raw_input("Please enter the name for the team that you would like to see: "))
#print(teams[str(x)]) # trying to get the name value rather than the key

Path = "~/sonomastate/cs496/"
filelist = os.listdir(Path)
for i in filelist:
    if i.startswith(teams[str(x)]):  # You could also add "and i.startswith('f')
        with open(Path + i, 'r') as f:
            for line in f:
                # Here you can check (with regex, if, or whatever if the keyword is in the document.)

date = {'2014-08-08':1, '2014-08-09':2,'2014-08-10':3}
for key in sorted(date.iterkeys()):
    print (date[key],": ", key, sep='')
y = int(input("Please entet the number for the date that you would like to load: "))

parser = argparse.ArgumentParser()
parser.add_argument('--name', type=str, default="balalaikacr3w_00001_20140808100030.cap", help="input file")
args = parser.parse_args()
sys.stdout.write(str(pcap_scan(args)))

Вот вывод:

1: balalaikacr3w
2: binja
3: blue-lotus
4: codered
5: dragonsector
6: gallopsled
7: hackingforchimac
8: hitcon
9: kaist
10: mmibh

Please enter the name for the team that you would like to see:

1: 2014-08-08
2: 2014-08-09
3: 2014-08-10
Please enter the number for the date that you would like to load:

1 Ответ

0 голосов
/ 16 октября 2018

Вы пробовали glob ?
Поддерживает имя файла с подстановочными знаками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...