title: Problems with User Function in Python 3 Not Defined
body: <p>I'm trying to write a program that organizes baseball player stats and info.  I am required to use an input file which contains all the data to be organized including player name, team, hit record etc. </p>
  
  <p>I am having an issue with one of the functions I defined, and I am not really sure where to go from here.  Every time I run the program I keep getting an error in Lines 73, 25, 53, 49 - all relating to the <code>name "processFile" is not defined</code>.  I am not sure if I am supposed to define that outside the function as a variable?  </p>
  
  <p>I am posting the code I have so far, and the data file I am organizing.  Thank you!</p>
  
  <pre><code>print("Welcome to The Baseball Database!")
  
  def terminate():
      """This function quits the program"""
      userExit = input("Are you sure you want to quit? Yes or No?: ")
      userExit = userExit.lower()
      if userExit == "yes":
          print("The Baseball Database is terminating gracefully.")
          exit()
      if userExit == "no":
          introRerun()
      else:
          print("Please enter 'Yes' or 'No'.")
          terminate()
  
  def assist():
      """This function offers help to the user"""
      print("The Baseball Database supports the following command functions:")
      print("INPUT - which allows you to input a file path")
      print("TEAM - which allows you to identify a team, and provide info about the players")
      print("REPORT - which reports the number of hits")
      print("HELP - for assistance")
      print("QUIT - to exit the database")
      print("Please choose from one of the above functions.")
      introRerun()
  
  
  def filePath():
      """This function allows the user to input a file"""
      file = input("Please enter the file path to read: ")
      fileObject = open(file) 
      return fileObject
  
  
  def introRerun():
      """This function reprompts the user to enter a command"""
      introLoop = input("Please enter a command, or type 'Help' for a list of options: ")
      introLoop = introLoop.lower()
      if introLoop == "quit":
          terminate()
  
      if introLoop == "help":
          assist()
  
      if introLoop == "input":
          filePath()
  
      if introLoop == "team":
          processFlie(fileObject)
  
      else:
          print("Please enter a valid command, for a list of options type 'Help'")
          introRerun()
  
  
  def processFile(inputFilePath):
      """This function processes the input file"""
      myList = None
      fileHandle = open(inputFilePath, "r")
      for line in fileHandle:
          tokens = line.split(sep = ";")
          entry = {"Name" : tokens [0], "Team" : tokens [1], "Games Played" : tokens [2], "At Bats" : tokens [3], "Runs Scored" : tokens [4], "Hits" : tokens [5], "Doubles" : tokens [6], "Triples" : tokens [7], "Homeruns" : tokens [8]}
          myList.append(entry)
      return myList
  
  
  playerList = None
  #playerList = processFile(filePath)
  intro = input("Please enter a command, or type 'Help' for a list of options: ")
  intro = intro.lower()
  
  if intro == "help":
      assist()
  if intro == "input":
      filePath()
      introRerun()
  if intro == "team":
      if playerList != None:
          print("Error! You must first INPUT a file to be read!")
          filePath()
      else:
          filePath()
  if intro == "no" or intro == "quit":
      terminate()
  </code></pre>
  
  <p>Input:</p>
  
  <pre><code>De Aza, Alejandro; CWS; 153; 607; 84; 160; 27; 4; 17
  Hunter, Torii; DET; 144; 606; 90; 184; 37; 5; 17
  Hamilton, Josh; LAA; 151; 576; 73; 144; 32; 5; 21
  Choo, Shin-Soo; CIN; 154; 569; 107; 162; 34; 2; 21
  Upton, Justin; ATL; 149; 558; 94; 147; 27; 2; 27
  Cabrera, Miguel; DET; 148; 555; 103; 193; 26; 1; 44
  Posey, Buster; SF; 148; 520; 61; 153; 34; 1; 15
  Suzuki, Ichiro; NYY; 150; 520; 57; 136; 15; 3; 7
  Holliday, Matt; STL; 141; 520; 103; 156; 31; 1; 22
  Headley, Chase; SD; 141; 520; 59; 130; 35; 2; 13
  Cabrera, Asdrubal; CLE; 136; 508; 66; 123; 35; 2; 14
  Pierzynski, A.J.; TEX; 134; 503; 48; 137; 24; 1; 17
  Hoes, L.J.; HOU; 46; 167; 24; 48; 7; 2; 1
  Young Jr., Eric; COL; 57; 165; 22; 40; 9; 3; 1
  Hairston, Scott; CHC; 52; 99; 13; 17; 2; 0; 8
  d'Arnaud, Travis; NYM; 31; 99; 4; 20; 3; 0; 1
  Ankiel, Rick; NYM; 20; 66; 7; 12; 4; 1; 2
  Ankiel, Rick; HOU; 25; 62; 6; 12; 3; 0; 5
  den Dekker, Matt; NYM; 27; 58; 7; 12; 1; 0; 1
  Sanchez, Angel; CWS; 1; 2; 0; 0; 0; 0; 0
  </code></pre>