Как мне прочитать только часть файла в Python? - PullRequest
0 голосов
/ 26 февраля 2020

food.txt


~ Oils, Vinegars and Condiments

-- Oils: canola oil, extra-virgin olive oil, toasted sesame
-- Vinegars: balsamic, distilled white, red wine, rice
-- Ketchup
-- Mayonnaise
-- Dijon mustard
-- Soy sauce
-- Chili paste
-- Hot sauce
-- Worcestershire

====================================
~ Seasonings

-- Kosher salt

-- Black peppercorns

-- Dried herbs and spices: bay leaves, cayenne pepper, crushed red pepper, cumin, ground coriander, oregano, paprika, rosemary, thyme leaves, cinnamon, cloves, allspice, ginger, nutmeg

-- Spice blends: chili powder, curry powder, Italian seasoning

-- Vanilla extract
====================================
~
Canned Goods and Bottled Items

-- Canned beans: black, cannellini, chickpeas, kidney

-- Capers

-- Olives

-- Peanut butter

-- Preserves or jelly

-- Low-sodium stock or broth

-- Canned tomatoes

-- Tomatoes, canned and paste

-- Salsa

-- Tuna fish


====================================

Как вы только читаете:

~ Oils, Vinegars and Condiments

-- Oils: canola oil, extra-virgin olive oil, toasted sesame
-- Vinegars: balsamic, distilled white, red wine, rice
-- Ketchup
-- Mayonnaise
-- Dijon mustard
-- Soy sauce
-- Chili paste
-- Hot sauce
-- Worcestershire

filereader.py

import re

regex = (r"^(~\WOil.*)$", r"^=*=$")
with open(filename, "r") as file_handler:
        # Print section of file as String

Я просто не знаю, что делать делать. Я получаю сообщение об ошибке и пропуски при использовании find () из String Obj и seek () из объекта File.

Ссылки: Как прочитать определенную c строку файла .txt с Python 3? Я хочу прочитать только одну строку и сохранить ее как переменную, а не все строки. и Чтение файла для определенного раздела в python

1 Ответ

0 голосов
/ 26 февраля 2020

Вам не нужно использовать регулярное выражение для этого. Просто читайте, пока не найдете разделитель разделов:

with open('food.txt') as f:
    for line in iter(f.readline, '====================================\n'):
        print(line, end='')

Если вы хотите сохранить текст как переменную:

with open('food.txt') as f:
    text = ''.join(iter(f.readline, '====================================\n'))

Чтобы избавиться от лишней пустой строки в конце:

text = text.strip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...