pathlib2无法用于递归查找文件

时间:2018-07-28 12:16:47

标签: python python-2.7 glob pathlib

我正在使用python2.7并尝试在子目录中递归查找文件,但是pathlib2返回NULL

>>> from pathlib2 import Path
>>> list(Path('~/text-segmentation/data/choi/').glob('**/*.ref'))
[]

如果使用glob模块在python3中完成了相同的操作

>>> import glob
>>> glob.glob('~/text-segmentation/data/choi/**/*.ref', recursive=True)
['./data/choi/2/9-11/34.ref', './data/choi/2/9-11/26.ref', './data/choi/2     
/9-11/30.ref'] 

此外,以下技术也不起作用

>>> for root, dirnames, filenames in os.walk('~/text-segmentation/data/choi/'):
...     for filename in fnmatch.filter(filenames, '*.ref'):
...             matches.append(os.path.join(root, filename))

>>> matches
[]

我必须在python2中工作。有什么解决方法吗?

编辑:使用/home/myuser/代替~

1 个答案:

答案 0 :(得分:0)

如果要能够将PosixPath扩展为主目录,则必须将expanduser()~方法一起使用:

list(PosixPath('~/text-segmentation/data/choi/').expanduser().glob('**/*.ref'))