Парсинг данных в питоне из текстового файла
Есть файл .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 ...