2016-07-15 7 views
-2

私はPythonスクリプトを引数で実行するたびにUnixコンソールのタブ補完機能を使うことができません。たとえば、スクリプトの実行時にファイルを入れたいとします。 このサンプルが私の問題をよりよく説明してくれることを願っています。タブコンソールでのPythonスクリプト実行時のオートコンプリート

ケース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を推測していますこれを許可しないか、または多分に設定する必要があります。私はいつものコードで私のスクリプトで​​を使用してい

..

ap.add_argument('-f', '--file', type=str, action='store', help='Input file.',metavar='FILE') 

私はすでにtype=argparse.FileType('r')てみましたが、同じであるしました。

私は現在作業しているファイルの名前が長いため、これを達成したいと思います。毎回ファイル名を書き込まないように要求されました。

とにかく、読んでいただきありがとうございます。

+3

これはPythonとはまったく関係ありません。どのシェル/ OSを使用していますか? –

+0

Debian 8 wheezyまたはUbuntu 16.04、どちらも同じですが、デフォルトのシェルがあります。 – Kako

+1

だから、bash、私は推測しています。これは完璧にうまく動作しますが、私はあなたと同じディストリビューションを使用していませんが、bashで私にとってはうまく動作します。あなたが入力する最後の文字に基づいてフィルターを適用する必要があります。 '-fd'と打つと、' d 'で始まっていないので、 'folder /'や 'folder' /'を表示するとは思いません。 –

答えて

0

これを回避するには、 Python 3.5を使用して私は私が望んで、bashのファイルの名前をオートコンプリートPythonスクリプトを実行するときに達成することができます。

ので

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

おかげで再び。

関連する問題