Текущая проблема, с которой сталкивается проблема, исходит из следующего сценария. У меня есть сценарий, который запускает программу командной строки для поиска всех файлов определенного расширения в определенной папке, позволяет вызывать эти файлы. Файл A. Другой раздел скрипта запускает команду grep через каждый файл для имен файлов в файле A. Что бы было лучший способ хранения имен файлов в файле A и только в файле A и как я могу его достичь? СпасибоНеисправность, связанная с списком
ответ
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)
Это даст вам словарь по имени файла -> файлы, связанные с этим файлом.
Вы, кажется, довольно быстрый/частой ответчик katrielalex, спасибо за это. Есть ли конкретная причина для использования списка? Теперь, когда я думаю об этом, можно скомпоновать структуру классов аналогичным образом? – user428370
хорошо ответ один для одного, и ваш ответ на этот вопрос, как оказалось, решил несколько проблем. – user428370
@ user428370: Общая структура здесь - ориентированный граф. Для хранения этого графика вам нужна структура данных. (Так же, как, например, вектор является математическим понятием, но он хранится, например, в списке или кортеже.) Существует несколько структур данных, обычно используемых для графиков; двумя наиболее распространенными являются списки смежности и матрицы смежности (см. Википедию для получения дополнительной информации). В приведенном выше случае я реализовал структуру списка смежности, используя словарь Python наборов. – katrielalex
Можете ли вы перефразировать свой вопрос? Добавление примера или двух тоже поможет. –
Вы пытаетесь сохранить список имен файлов в файле для использования позже в другой программе? –
@ Manoj: Файл "001356.doc" содержит в себе следующий текст: "001354, 001359, 001245". Этот текст является именем файла. например: 001354.doc, 001359.doc, 001245.doc Конечный продукт мне нужно что-то вроде этого (001356.doc) -001354.doc -001359.doc -001245.doc @ Noctis: yes – user428370