控制台

时间:2016-07-15 17:50:59

标签: python shell python-3.x unix execution

我有这个“问题”(缺乏更好的词),每当我用参数运行我的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'),但它是一样的。

我想实现这一点,因为我目前正在使用的文件有很长的名称,并且每次都要求不写入文件名。

无论如何,感谢阅读。

1 个答案:

答案 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/

再次感谢。