关于python:在目录中查找名为* .txt的所有文件

Find all files named *.txt in directory

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
import os, glob

file = os.listdir("my directory: example")

mp3files = list(filter(lambda f: f == '*.txt',file))    
print(mp3files)

这个代码只给我:[]


从python 3.4开始,您可以只使用这两行来完成该任务:

1
2
from pathlib import Path
mp3files = list(Path('.').glob('**/*.txt'))

更多信息:https://docs.python.org/3/library/pathlib.html


为什么不使用导入的glob模块?

1
mp3files = glob.glob('*.txt')

这将返回当前工作目录中所有MP3文件的列表。如果您的文件在不同的目录中,而不是在您的CWD中:

1
2
3
path_to_files_dir = os.path.join(os.getcwd(), 'your_files_dir_name', '*.txt')

mp3files = glob.glob(path_to_files)


使用str.endswith

1
list(filter(lambda f: f.endswith('.txt'),file))

1
mp3files = list(filter(lambda f: f.endswith('.txt') ,file))

应该有效,因为文件名与*.txt不匹配(==,而是以扩展名结尾