code: def show_open_file_dialog(filetypes):
      
      # The following line is used to Tk's main window is not shown
      Tk().withdraw()
  
      # OSX ONLY: Call bash script to prevent file select window from sticking
      # after use.
      if platform.system() == 'Darwin':
          subprocess.call("defaults write org.python.python " +
                  "ApplePersistenceIgnoreState YES", shell=True)
          filename = askopenfilename(filetypes=filetypes)
          subprocess.call("defaults write org.python.python " +
                  "ApplePersistenceIgnoreState NO", shell=True)
      else:
          filename = askopenfilename(filetypes=filetypes)
  
      return filename
docs: Show an open file dialog and return the path of the file selected.
  
      Parameters
      ----------
      filetypes : list of tuples
          Types of file to show on the dialog. Each tuple on the list must
          have two elements associated with a filetype: the first element is
          a description, and the second is the associated extension.
  
      Returns
      -------
      filename : str
          The path of the filename selected, or an empty string if no file
          was chosen.