Подход необходимо изменить, если файл журнала не в указанном вами порядке. Так как следующая функция всегда начнет находить заголовок, цену и текст ссылки и добавлять в список. Чтобы преобразовать в dataframe, весь список должен быть равной длины. Дайте мне знать, если это работает.
def log_to_frame(location="./datalake/file.log"):
with open(location, mode='r', encoding='UTF-8') as f:
title_list = []
price_list = []
link_list = []
for line in f:
if "Title" in line:
title = line.split(": ")[1].rstrip()
title_list.append(title)
elif "Price" in line:
price = line.split(": ")[1].replace("�", "").rstrip()
price_list.append(title)
elif "Link" in line:
link = line.split(": ")[1].rstrip()
link_list.append(title)
else:
pass
main_df = pd.DataFrame({"title": title_list, "price": price_list, "link": link_list})
return main_df
log_df = log_to_frame()
log_df.to_excel("log.xlsx", index=False)