Проблема, требующая списков

1

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

  • 1
    Вы можете перефразировать свой вопрос? Добавление одного или двух примеров тоже поможет.
  • 0
    Вы пытаетесь сохранить список имен файлов в файле для последующего использования в другой программе?
Показать ещё 3 комментария
Теги:
dictionary
nested-lists

1 ответ

2
Лучший ответ

EDIT: Я вижу, что ты был тем, кто задал предыдущий вопрос! Зачем открывать новый?


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

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

  • 0
    Вы, кажется, довольно быстрый / частый ответчик katrielalex, спасибо за это. Есть ли особая причина для использования списка? Теперь, когда я думаю об этом, можно ли аналогичным образом кодировать структуру класса?
  • 0
    Ну, ответ на этот вопрос разный, и ваш ответ на этот вопрос решил несколько проблем.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню