您可以使用临时列表将配料添加到,然后在遇到
一行
- Ingredients:
将这个列表附加到一个更大的列表中,然后再次执行相同的操作。
def get_ingredients_from_file():
result = []
with open('file.txt') as fp:
li = []
for line in fp:
#Append the ingredients to temporary list
if line.startswith('*'):
li.append(line.replace('*','').strip())
#Get a new list and append it to result
elif line.startswith("- Ingredients"):
li = []
result.append(li)
return result
print(get_ingredients_from_file())
如果文件看起来像
- Pasta Salad
- Description:
bla
bla
- Ingredients:
* ingredient 1
* ingredient 2
* ingredient 3
- Preperation:
bla
bla
bla
- Ingredients:
* ingredient 4
* ingredient 5
* ingredient 6
输出将看起来像
[['ingredient 1', 'ingredient 2', 'ingredient 3'],
['ingredient 4', 'ingredient 5', 'ingredient 6']]