在控制台中执行 python 脚本的选项卡自动完成
Posted
技术标签:
【中文标题】在控制台中执行 python 脚本的选项卡自动完成【英文标题】:tab autocomplete on python script execution in console 【发布时间】:2016-07-15 17:50:58 【问题描述】:我遇到了这个“问题”(因为没有更好的词),每当我运行带有参数的 python 脚本时,我都无法使用 Unix 控制台的制表符完成功能。例如,当我想在脚本执行中放置一个文件时。 希望这个例子能更好地说明我的问题。
案例一
>python3 script.py
[tab]
folder/ folder1/ data.dat
案例 2
>python3 script.py -f d
[tab]
folder/ folder1/ (file data.dat not showing)
理想情况
>python3 script.py -f data.dat - n 2 ....
希望我说清楚了,有人可以向我解释一下,我猜 python 不允许这样做,或者需要以某种方式进行配置。
我在我的脚本中使用argparse
和通常的代码..
ap.add_argument('-f', '--file', type=str, action='store', help='Input file.',metavar='FILE')
我已经尝试过type=argparse.FileType('r')
,但还是一样。
我想实现这一点,因为我目前正在工作的文件名称很长,并且要求不要每次都写文件名。
无论如何,感谢阅读。
【问题讨论】:
跟python完全没有关系。您使用的是什么外壳/操作系统? Debian 8 wheezy 或 Ubuntu 16.04,两者都是一样的,使用默认的 shell。 所以 bash,我猜。尽管我没有使用与您相同的发行版,但这对我来说在 bash 中非常有效。它应该根据您输入的最后一个字母进行过滤,因此如果您输入-f d
,我不希望它显示folder/
或folder
/`,因为它们都不是以d
是的,我知道,我希望如果我输入 -f d
文件 data.dat
会显示。但它没有@BrendanAbel
【参考方案1】:
好的,解决这个问题。使用 python 3.5 我可以实现我想要的,在执行 python 脚本时在 bash 中自动完成文件名称。
所以
> python3 script.py
[tab]
folder/ folder1/ data.dat
> python3 script.py -f d
[tab]
folder/ folder1/ (file data.dat not showing)
和 python 3.5
> python3.5 script.py -f d
[tab]
folder/ folder1/ data.dat
这个页面也让我找到了一些有价值的答案。
https://docs.python.org/3/tutorial/interactive.html
https://argcomplete.readthedocs.io/en/latest/
再次感谢。
【讨论】:
以上是关于在控制台中执行 python 脚本的选项卡自动完成的主要内容,如果未能解决你的问题,请参考以下文章