~adeodato/ blog/ entries/ 2008/ 02/ 14/ Python raw_input() with an editable default value, using readline

Python raw_input() with an editable default value, using readline

OK, blogging this because I would have found it very useful today if somebody else had. Hopefully the title is enough to get love from the search engines.

  import readline

  def raw_input_with_default(prompt, default):
      def pre_input_hook():
          readline.insert_text(default)
          readline.redisplay()

      readline.set_pre_input_hook(pre_input_hook)
      try:
          return raw_input(prompt)
      finally:
          readline.set_pre_input_hook(None)