社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

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(?)把配料打印出来。