сортировка текстовых файлов с помощью Python - PullRequest
0 голосов
/ 26 ноября 2011

Скажем, у меня есть текстовый файл с такими рецептами, как:

НАЗВАНИЕ: Мичиганский пирог:

ИНГРЕДИЕНТЫ: 8 унций сливочного сыра 1 банка подслащенного сгущенного молока ¼ c лимономсок 15 унций измельченного ананаса 8 унций взбитых сливок

НАПРАВЛЕНИЯ: очень хорошо слить ананас.Взбить сливочный сыр, пока он не станет очень гладким.Добавляйте подслащенное сгущенное молоко постепенно.Смешайте лимонный сок и ананас.Сложить в взбитые сливки.Вылейте смесь в две корочки для пирога Грэм Крекер и охладите.

Как я могу использовать Python, чтобы отсортировать все названия вместе, все ингредиенты вместе и т.д. ... ??

Ответы [ 3 ]

1 голос
/ 27 ноября 2011

Инициализируйте словарь тремя ключами: НАЗВАНИЕ, ИНГРЕДИЕНТЫ, НАПРАВЛЕНИЯ.

Разбор текстового файла. Всякий раз, когда вы найдете один из ключей, добавьте текст под ним в соответствующую пару значений ключа в словаре. Остановитесь, когда увидите другой жирный ключ, и продолжайте анализ.

Если вы предпочитаете список названий, например, вместо длинной, длинной, длинной строки, используйте словарь, содержащий список.

например.

data = {'TITLE':[], 'INGREDIENTS':[], 'DIRECTIONS':[]}

Добавить проанализированные данные в список.

0 голосов
/ 27 ноября 2011

Если список рецептов находится в recipe.txt и заголовок всегда разделен двоеточием, следующий код возвращает вас в словарь.

with open('recipe.txt') as recipe:
  g = ( line.split(':',1) for line in recipe )
  g = ( (i[0],i[1:]) for i in g if len(i)>1 )
  d = dict()
  for k,v in b:
    d[k] = d.get(k,[]) + v

Теперь просто сортируйте его так, как вам нравится.

0 голосов
/ 26 ноября 2011

1) Загрузить все файлы, разобрать их и затем поместить в список словарей

2) Сортировать список так, как вы хотите (см. Как отсортировать список словарей по значениям словаря в Python? )

...