Note that there are some explanatory texts on larger screens.

plurals
  1. POAutocomplete with readline in python3
    text
    copied!<p>I'm trying to use this nifty trick <a href="https://stackoverflow.com/questions/7821661/how-to-code-autocompletion-in-python">here</a> to work with a csv file. I can't seem to get autocomplete working in python3 though. I don't know where to begin with readline. The documentation was a little dense. My guess is that I'm missing something without <code>raw_input()</code> from Python 2.</p> <p>I've pasted my attempt below. When I'm in the shell and I hit tab, I just get big tabs and no autocomplete action. My intention is that the input statement below auto-completes on the strings <code>['10/10/2013', '10/13/2013', '10/14/2013', '10/15/2013']</code>.</p> <p>What am I missing?</p> <pre><code>import readline class MyCompleter(object): # Custom completer def __init__(self, options): self.options = sorted(options) def complete(self, text, state): if state == 0: # on first trigger, build possible matches if text: # cache matches (entries that start with entered text) self.matches = [s for s in self.options if s and s.startswith(text)] else: # no text entered, all matches possible self.matches = self.options[:] # return match indexed by state try: return self.matches[state] except IndexError: return None dates = [ '10/10/2013 13:03:51', '10/10/2013 13:54:32', '10/10/2013 18:48:48', '10/10/2013 19:13:00', '10/13/2013 12:58:17', '10/13/2013 13:38:15', '10/13/2013 16:48:58', '10/13/2013 17:23:59', '10/13/2013 20:09:56', '10/13/2013 21:54:14', '10/13/2013 21:57:43', '10/13/2013 22:47:40', '10/14/2013 13:32:53', '10/14/2013 21:14:51', '10/15/2013 10:18:23' ] dates = [x.split(' ')[0] for x in dates] completer = MyCompleter(list(set(dates))) readline.set_completer(completer.complete) readline.parse_and_bind('tab: complete') date = input('Enter a date in m/d/yy format\n\t') </code></pre> <p>Update: Nice answer below, but still broken for me on OS X. I don't even know where to begin troubleshooting that. I get autocomplete with this on Ubuntu, but it's not binding to <code>tab</code> on my OS X system somehow.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload