gpt4 book ai didi

python - Cmd 模块 '~' 完成

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:17 27 4
gpt4 key购买 nike

我一直在玩弄 cmd python 模块,并且正在研究文本完成功能。我一直试图让它扩展/识别“~”到我的主目录,但无济于事。

我注意到我可以通过覆盖 cmd 模块中的 completedefault(self, *ignored) 方法来处理默认完成。其中 ignored 是文本、行、begidx、endidx 的元组。如果我输入命令 my_command ./foldertext 参数将为“./folder”,这意味着我可以执行如下操作:glob.glob( text + '*') 返回该文件夹中所有文件的列表。但是,如果我现在执行 my_command ~/folder text 变量现在只包含 /folder,所以我无法使用 os .path.expanduser(text) 确定该文件夹的绝对路径并显示该文件夹中的所有文件。

基本上我想知道是否有人可以指出正确的方向以便扩展带有 ~ 的路径。

最佳答案

扩展来自:https://stackoverflow.com/a/6657975/1263565 的答案

您可以覆盖 cmd 模块的 completedefault()方法:

def completedefault(self, *ignored):
# Set the autocomplete preferences
readline.set_completer_delims(' \t\n;')
readline.parse_and_bind("tab: complete")
readline.set_completer(complete)

完整的方法如下:

def complete(text, state):
return (glob.glob(os.path.expanduser(text)+'*')+[None])[state]

现在应该允许 ~ 扩展。

关于python - Cmd 模块 '~' 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com