2010-08-25 5 views
1

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

+1

Можете ли вы перефразировать свой вопрос? Добавление примера или двух тоже поможет. –

+0

Вы пытаетесь сохранить список имен файлов в файле для использования позже в другой программе? –

+0

@ Manoj: Файл "001356.doc" содержит в себе следующий текст: "001354, 001359, 001245". Этот текст является именем файла. например: 001354.doc, 001359.doc, 001245.doc Конечный продукт мне нужно что-то вроде этого (001356.doc) -001354.doc -001359.doc -001245.doc @ Noctis: yes – user428370

ответ

3

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


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

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

+0

Вы, кажется, довольно быстрый/частой ответчик katrielalex, спасибо за это. Есть ли конкретная причина для использования списка? Теперь, когда я думаю об этом, можно скомпоновать структуру классов аналогичным образом? – user428370

+0

хорошо ответ один для одного, и ваш ответ на этот вопрос, как оказалось, решил несколько проблем. – user428370

+0

@ user428370: Общая структура здесь - ориентированный граф. Для хранения этого графика вам нужна структура данных. (Так же, как, например, вектор является математическим понятием, но он хранится, например, в списке или кортеже.) Существует несколько структур данных, обычно используемых для графиков; двумя наиболее распространенными являются списки смежности и матрицы смежности (см. Википедию для получения дополнительной информации). В приведенном выше случае я реализовал структуру списка смежности, используя словарь Python наборов. – katrielalex

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

  • Нет связанных вопросов^_^