我制作了一个python脚本,要求用户输入2或3个文件名,应对此进行分析。文件名的插入是在脚本中完成的(它不作为参数传递给argparse
,因为在此之前用户还必须做出其他选择)。由于公司的命名约定,这些文件名可能很长,因此输入起来很麻烦。为了帮助用户,我正在打印目录的内容。现在我正在使用这样的东西:
fname = raw_input("Insert phase 1 filename: ")
(我检查文件是否存在等... )
是否可以通过编写自定义的input()函数来实现python脚本中文件名的自动完成功能?
请注意,脚本必须在不同的机器/操作系统上运行,并且我不能要求用户安装一些非标准的python库。
如果没有干净的方法,我可能会使用花哨的解决方案,而不是仅在目录中的文件名前打印一个数字,然后要求用户仅插入该数字。
答案 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))