私信  •  关注

Jizhou Yang

Jizhou Yang 最近创建的主题
Jizhou Yang 最近回复了
6 年前
回复了 Jizhou Yang 创建的主题 » 迭代txt文件python

如果您讨厌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()的说明如下:

  1. 将整个文件读取为文本。
  2. 从文本中提取“-成分:”和“-准备:”之间的所有文本。
  3. 创建所有成分的列表。此时列表中包含空行。
  4. 过滤掉空行。
  5. 把配料放回原处。

main()只是运行get_ingredients()和quickly(?)把配料打印出来。