Python命令行脚本:用户输入的文件/目录自动完成

时间:2011-04-18 15:17:16

标签: python command-line

我正在编写一个在Bash终端内运行的Python程序(它已经依赖于Bash作为其环境)。 在那里,我有一个小的安装例程,它要求用户提供一个位于其文件系统上的目录。 这就是我阅读输入的方式:

print "Input:",
input = sys.stdin.readline().strip()

现在我希望用户能够使用现有文件或目录的名称自动填充输入。最好的方法是什么?我是否需要自己查找目录/文件并使用包cmd(如this example中所述)?或者有一种更简单的“内置”方法吗?

如果我能够在os.system中使用Bash自动完成功能,那也没关系。但到目前为止我尝试的一切都没有成功。这就是我试过的:

os.system("read -e -p \"Input:\" INPUT")

但是很奇怪:Bash抱怨read: 1: Illegal option -e,虽然命令在一个简单的Bash脚本中起作用。但我需要-e修饰符才能完成。

有关如何在Python控制台程序中执行file / dirname自动完成的任何建议吗?

1 个答案:

答案 0 :(得分:4)

您想结帐readline module。我回答了一个similar question here,它显示了如何进行文件名/ dirname自动完成路径。如果您需要更多详细信息,请与我们联系。