我有这个“问题”(缺乏更好的词),每当我用参数运行我的python脚本时,我都无法使用Unix控制台的标签完成功能。例如,当我想在脚本执行中放置一个文件时。 希望这些例子更能说明我的问题。
案例1
>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')
,但它是一样的。
我想实现这一点,因为我目前正在使用的文件有很长的名称,并且每次都要求不写入文件名。
无论如何,感谢阅读。
答案 0 :(得分:0)
好的,可以解决这个问题。使用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/
再次感谢。