Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- from collections import namedtuple
- def gettime():
- return datetime.datetime.now()
- def menu_option(menu):
- print('\nMENU\n')
- for option, details in menu.items():
- print(f'{option}: {details.desc}')
- print('\n')
- while True:
- option = input('Option? ').strip().lower()
- if option in menu:
- return menu[option]
- print('Sorry, that option is not available')
- def people_option(people):
- print('\nPEOPLE\n')
- for counter, person in enumerate(people, start=1):
- print(f'{counter}: {person}')
- print('\n')
- while True:
- option = input('Person? ').strip()
- if option and option.isdigit():
- option = int(option)
- if 1 <= option <= len(people):
- return people[option-1]
- print('Sorry, that option is not available')
- def write_data(prompt, person, info):
- vaalue = input(prompt)
- if vaalue:
- try:
- with open(f"{person}{info.prefix}", "a") as f:
- f.write(str([str(gettime())]) + ": " + vaalue + "\n")
- print("written successfully")
- except (IOError, ValueError, EOFError) as e:
- print(e)
- except:
- print("Strange error, sorry")
- finally:
- print()
- def read_data(person, info):
- print(f'\n{info.desc} report for {person}:')
- try:
- with open(f"{person}{info.prefix}") as f:
- for line in f:
- print(line.strip())
- except (IOError, ValueError, EOFError) as e:
- print(e)
- except:
- print("Strange error, sorry")
- finally:
- print()
- def entry(person, info):
- prompt = f"Data for {info.desc} for {person}: "
- write_data(prompt, person, info)
- def report(person, info):
- read_data(person, info)
- def exercise(person, option):
- prompt = "Input here to store data: \n"
- write_date(person, option, prompt)
- def food(person, option):
- prompt = "Input here to store data: \n"
- write_date(person, option, prompt)
- Menu = namedtuple('Menu', 'desc prefix func')
- actions = {"1": Menu("Enter data", "", entry),
- "2": Menu("Report", "", report),
- "q": Menu("exit", "", None),
- }
- kind = {"1": Menu("exercise", "_ex.txt", exercise),
- "2": Menu("food", "_food.txt", food),
- "q": Menu("exit", "", None),
- }
- people = ["brain", "lara", "jason"]
- print("\n Welcome to Health Management Program \n")
- while True:
- action = menu_option(actions)
- if not action.func:
- break
- person = people_option(people)
- info = menu_option(kind)
- if info.func:
- action.func(person, info)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement