Проблема, требующая списков - PullRequest
1 голос
/ 25 августа 2010

В настоящее время возникает следующая проблема: У меня есть сценарий, который запускает программу командной строки, чтобы найти все файлы с определенным расширением в определенной папке, давайте назовем эти файлы файлом А. Другой раздел сценария запускает команду grep через каждый файл для имен файлов в файле А. Что будет лучший способ сохранить имена файлов в файле A и только в файле A, и как я могу достичь этого? Спасибо

1 Ответ

2 голосов
/ 25 августа 2010

РЕДАКТИРОВАТЬ: я вижу, что вы тот, кто задал предыдущий вопрос!Зачем открывать новый?


Недавно был задан вопрос об этой конкретной проблеме - структура, которую вы моделируете, представляет собой ориентированный граф .Смотрите мой ответ на этот вопрос, используя пакет Python networkx.Использование этого пакета - хорошая идея, если вы собираетесь выполнить некоторую постобработку данных.Однако для простых ситуаций вы можете создать собственную структуру данных.Вот пример, использующий представление графа в списке смежности;вместо этого нетрудно использовать матрицу смежности.

from collections import defaultdict
adj_list = defaultdict( set )

for filename in os.listdir( <dir> ):
    with open( filename ) as theFile:
        for line in theFile:
            # parse line into filename, say 'target'
            adj_list[ filename ].add( target )

Это даст вам словарь имен файлов -> файлов, связанных этим файлом.

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