import matplotlib.pyplot as plt temp = input("Please enter your information!! ") try: with open('gfg.txt', 'w') as gfg: gfg.write(temp) except Exception as e: print("There is a Problem", str(e)) file_path = 'gfg.txt' file = open(file_path) strnew={} all_records = {} i=0 for line in file: for i in range(len(line)): if line[i]==':': strnew=line[i+1:] strnew = strnew.strip('; . \n') records_Inline=strnew.split(';') for records in records_Inline: if records != '': key, value = tuple(records.split('-')) all_records[key] = int(value) i+=1 cell_content = [] for key in all_records.keys(): cell_content.append([key, str(all_records[key])]) fig1 = plt.figure(1) plt.table(cellText = cell_content, loc = 'best') plt.axis('off') plt.figure(2) bars_loc = range(len(all_records)) plt.barh(bars_loc, all_records.values()) plt.yticks(bars_loc, list(all_records.keys())) plt.show()
Он из поступающего текста создаёт таблицу и график. Текст поступает по определённому шаблону: слово: слово-число; слово-число;
Программа сначала находит : и убирает весь текст до этого : и само : Потом делит на строки по ; Потом делит на подстроки по - И получаются пары слово число.
Мне надо сделать так, чтобы программа работала без этого шаблона и не зависела от - ; и :. Чтобы пользователь мог впихнуть любой текст, где есть какая-либо статистика.
Я думаю надо находить в тексте число. Потом брать в пару слово слева от этого числа, и потом искать следующее число и т.д.
Подскажите как это реализовать?
На картинках пример работы кода