python脚本中的自动完成文件名

时间:2018-07-26 16:23:14

标签: python autocomplete python-2.x

我制作了一个python脚本,要求用户输入2或3个文件名,应对此进行分析。文件名的插入是在脚本中完成的(它不作为参数传递给argparse,因为在此之前用户还必须做出其他选择)。由于公司的命名约定,这些文件名可能很长,因此输入起来很麻烦。为了帮助用户,我正在打印目录的内容。现在我正在使用这样的东西:

fname = raw_input("Insert phase 1 filename: ")

我检查文件是否存在等...

是否可以通过编写自定义的input()函数来实现python脚本中文件名的自动完成功能?

请注意,脚本必须在不同的机器/操作系统上运行,并且我不能要求用户安装一些非标准的python库。

如果没有干净的方法,我可能会使用花哨的解决方案,而不是仅在目录中的文件名前打印一个数字,然后要求用户仅插入该数字。

1 个答案:

答案 0 :(得分:1)

这可能会帮助: Tab completion in Python's raw_input()

如果您不想使用它,而只是“猜测”文件:

commands = ["cute_file", "awesome_file"]

def find_file(text):
    options = [i for i in commands if i.startswith(text)]
    if len(options):
        return options
    else:
        return None


my_input = input("File name:")
print(find_file(my_input))