ihd*_*hdv 8 python bash argparse
所以我有一个 python 程序,它读取这样的配置文件:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--config', type=str, help='config file', required=True)
args = parser.parse_args()
cfg_filename = args.config
Run Code Online (Sandbox Code Playgroud)
我希望能够在 bash 中自动完成路径。例如,假设调用了上面的程序,main.py并且有一个名为 的配置文件config_1.txt,其结构如下:
folder/
main.py
configs/
config_1.txt
Run Code Online (Sandbox Code Playgroud)
假设在我的终端中它看起来像
folder/
main.py
configs/
config_1.txt
Run Code Online (Sandbox Code Playgroud)
我希望按一个选项卡会给出:
user@host:~/folder$ python main.py -c con
Run Code Online (Sandbox Code Playgroud)
然后另一个选项卡给出
user@host:~/folder$ python main.py -c config/
Run Code Online (Sandbox Code Playgroud)
我尝试过添加
import argcomplete
argcomplete.autocomplete(parser)
Run Code Online (Sandbox Code Playgroud)
但没有用。
小智 6
对我来说,在参数名称后使用等号(“=”)可以使自动完成功能正常工作,并建议到目前为止与输入路径匹配的所有文件。例如,尝试:
python main.py -c=<your path>
Run Code Online (Sandbox Code Playgroud)
当我没有使用“=”符号时,自动完成功能仅适用于以“.py”扩展名结尾的文件夹和文件。背后的可能原因可能是为 python 安装了完成脚本。请参阅此处了解更多信息:https://www.reddit.com/r/bash/comments/b8oqeg/comment/ek1ds7t/ ?utm_source=share&utm_medium=web2x&context=3
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |