Парсинг данных в питоне из текстового файла

Есть файл .txt с данными вида word1, word2, word3, word4, word5 ... требуется: присвоить переменной поочередно значения word1, word2, word3, word4, word5 ... Каким образом это лучше реализовать?


Ответы (1 шт):

Автор решения: Shamus Rezol

Как вариант можно написать parser самому. Минусы: можно легко накосячить. По опыту скажу, что лучше использовать популярные методы сериализации вроде yaml и прочих, чем писать свои с нуля.

class Parser:

    def __init__(self, data: str):

        self.data = data
        self.current_char = None
        self.current_pos = 0
        self.advance(0)

    def advance(self, adjust: int = 1):

        self.current_pos += adjust

        if self.current_pos < len(self.data):
            self.current_char = self.data[self.current_pos]
        else:
            self.current_char = None

    def __iter__(self):
        return self

    def __next__(self):

        if not self.current_char:
            raise StopIteration

        data = str()

        while self.current_char:
            if not self.current_char.isspace():
                break
            self.advance()

        while self.current_char:
            if self.current_char == ',':
                self.advance()
                break
            else:
                data += self.current_char
                self.advance()

        return data

for word in Parser("word1,word2,  \n   word3, word4, word5 ..."):
    print(word)

 

word1
word2
word3
word4
word5 ...
→ Ссылка