递归glob的意外结果。glob使用' **'图案
不存在的目录上的递归GLOB结果:
>>> import os, glob
>>> os.path.exists('dir')
False
>>> glob.glob('dir/*', recursive=True)
[]
>>> glob.glob('dir/**', recursive=True)
['dir/']
递归圈结果返回的文件返回的目录:
>>> os.path.exists('file')
True
>>> glob.glob('file/*', recursive=True)
[]
>>> glob.glob('file/**', recursive=True)
['file/']
bash shell完成的类似命令将产生以下输出:
$ shopt -s globstar failglob
$ ls dir
ls: cannot access 'dir': No such file or directory
$ echo dir/*
-bash: no match: dir/*
$ echo dir/**
-bash: no match: dir/**
$ touch file
$ echo file/*
-bash: no match: file/*
$ echo file/**
-bash: no match: file/**
对带有“ **”模式返回的元素结果的逻辑说明或只是一个错误?
Recursive glob result on non-existing directory:
>>> import os, glob
>>> os.path.exists('dir')
False
>>> glob.glob('dir/*', recursive=True)
[]
>>> glob.glob('dir/**', recursive=True)
['dir/']
Recursive glob result on existing file returned as directory:
>>> os.path.exists('file')
True
>>> glob.glob('file/*', recursive=True)
[]
>>> glob.glob('file/**', recursive=True)
['file/']
Similar commands with bash shell completion would produce following output:
$ shopt -s globstar failglob
$ ls dir
ls: cannot access 'dir': No such file or directory
$ echo dir/*
-bash: no match: dir/*
$ echo dir/**
-bash: no match: dir/**
$ touch file
$ echo file/*
-bash: no match: file/*
$ echo file/**
-bash: no match: file/**
Is there any logical explanation on glob results returned with '**' pattern or just a bug?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论