Codecademy Intermediate Python3 Project: Event Coordinator

guests = {}

def read_guestlist(file_name):
  text_file = open(file_name,'r')
  n = None
  while True:
    if n is not None:
      line_data = n.strip().split(",")
    else:
      line_data = text_file.readline().strip().split(",")

    if len(line_data) < 2:
    # If no more lines, close file
      text_file.close()
      break

    name = line_data[0]
    age = int(line_data[1])
    guests[name] = age

    n = yield name, age


guests_gen = read_guestlist('guest_list.txt')
for i in range(10):
  print(next(guests_gen))

guests_gen.send('Jane,35')

print(next(guests_gen))
print(next(guests_gen))
print(next(guests_gen))
print(next(guests_gen))
#print(next(guests_gen))

drinks_gen = (name for name, age in guests.items() if age >= 21)
print(list(drinks_gen))

def table_one_gen():
  food_name = "Beef"
  table_num = 1
  for i in range(1, 6):
    seat_num = i
    yield("Food: " + food_name, "Table: " + str(table_num), "Seat: " + str(seat_num))

def table_two_gen():
  food_name = "Chicken"
  table_num = 2
  for i in range(1, 6):
    seat_num = i
    yield("Food: " + food_name, "Table: " + str(table_num), "Seat: " + str(seat_num))

def table_three_gen():
  food_name = "Fish"
  table_num = 3
  for i in range(1, 6):
    seat_num = i
    yield("Food: " + food_name, "Table: " + str(table_num), "Seat: " + str(seat_num))

def connected_tables():
  yield from table_one_gen()
  yield from table_two_gen()
  yield from table_three_gen()

all_tables = connected_tables()

def seating_arrangement(guests, all_tables):
  for name in guests:
    yield ("Name: " + name, next(all_tables))


seat_arrange = seating_arrangement(guests, all_tables)

for i in seat_arrange:
  print(i)