如果您讨厌if s和else,并且假设您只有一个成分部分,下面是使用正则表达式的一种方法。
import re
def get_ingredients():
text = open('recipe_test.txt', 'r').read()
ingredients = re.search(r'- Ingredients:(.*?)- Preperation:', text, re.DOTALL).group(1)
ingredients = ingredients.splitlines()
ingredients = list(filter(lambda x: x, ingredients))
return ingredients
def main():
ingredients = get_ingredients()
for ingredient in ingredients:
print(ingredient)
if __name__ == '__main__':
main()
get_ingredients()的说明如下:
-
将整个文件读取为文本。
-
从文本中提取“-成分:”和“-准备:”之间的所有文本。
-
创建所有成分的列表。此时列表中包含空行。
-
过滤掉空行。
-
把配料放回原处。
main()只是运行get_ingredients()和quickly(?)把配料打印出来。