from glob import glob
thisdir = os.path.abspath('./')
somefiles = glob(f'{samples_dir}/*p[ng][df]')
返回空列表。
但是这个返回我所有的 png 和 jpg 文件。该文件夹包含 png、jpg 和 pdf 文件。
otherfiles = glob(f'{samples_dir}/*[jp][pn]g')
我只是好奇为什么第一个不起作用。显然我不完全理解 python3 的
[]
方法的 glob
语法。
A
[...]
表达式匹配大括号之间包含的任何单个字符。所以:
[jp][pn]g
将匹配“foo.jpg”、“foo.jng”、“foo.ppg”和“foo.png”。p[ng][df]
将匹配“foo.pnd”、“foo.pnf”、“foo.pgd”和“foo.pgf”第二个表达式的大部分结果似乎没有那么有用。
对于你正在做的事情,我可能会写这样的内容:
somefiles = (
glob(f'{samples_dir}/*.png') +
glob(f'{samples_dir}/*.jpg') +
glob(f'{samples_dir}/*.pdf')
)