0

我想要的是要求用户输入路径,但不要强迫他完全手写,通过按 TAB 帮助他完成终端?如何在python中编码?

                 if __name__== '__main__' : 

                       path=sys.argv[1]
                  a=glob.glob(path+"/abc*")

我在这里通过命令行获取路径。这不是我想要的方式。我想显示一个提示要求用户

预期输出:“输入文件的路径”:现在他应该能够通过文件系统进行解析。

注意:我不想把它作为命令行参数*

4

2 回答 2

0

readline 模块这样的东西应该会有所帮助。

于 2013-01-16T10:07:16.943 回答
0

希望这会给你一个开始做你想做的事,它非常粗糙,需要针对所有这些边缘情况进行改进,但希望你会发现它有一些用处。我只是希望我已经回答了我认为你问的问题。

#!/usr/bin/env python 
import readline
import os.path
import glob

class Completer(object):
    def __init__(self):
        self.matches = []
    def complete_path(self, text, state):
        if state == 0:
            self.matches = glob.glob(text + "*")
        if state < len(self.matches):
            if os.path.isdir(self.matches[state]):
                return self.matches[state] + "/"
            else:
                return self.matches[state]
        else:
            self.matches = []
            return None

readline.parse_and_bind('tab: complete')
readline.parse_and_bind('set editing-mode emacs')

# Allow '/'
default_delims = readline.get_completer_delims()
delims = default_delims.translate(None, "/")
readline.set_completer_delims(delims)

readline.set_completer(Completer().complete_path)

while True:
    line = raw_input('Enter Path: ["^C" to quit] : ')
    print 'Line: "%s"' % line
于 2013-01-16T11:57:16.520 回答