我正在编写一个在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自动完成的任何建议吗?
答案 0 :(得分:4)
您想结帐readline module。我回答了一个similar question here,它显示了如何进行文件名/ dirname自动完成路径。如果您需要更多详细信息,请与我们联系。