遍历本地文件存储是一项方便的技能。在本地系统内工作,os
中有多种策略os
可用于检索目录中的所有文件。
在本教程中,我们将使用该listdir()
函数并操纵结果以仅返回文件。
导入库
首先,我们需要os
库中的三种方法。
- listdir:检索目录的内容(目录和文件)。
- join:将两个组件组合成一条路径。
- isfile:如果给定的路径组件是一个文件,则返回true。
from os import listdir
from os.path import join, isfile
检索目录的内容
导入必要的方法后,该设置目录的路径并检索其内容了。
from os import listdir
from os.path import join, isfile
directory_path = "/some/path"
contents = listdir(directory_path)
筛选目录
现在我们有了目录的所有内容,是时候过滤掉目录了—仅保留文件。
from os import listdir
from os.path import join, isfile
directory_path = "/some/path"
contents = listdir(directory_path)
files = filter(lambda f: isfile(join(directory_path,f)),contents)
该filter()
函数有两个参数:一个确定是否将包含该项目的函数以及要过滤的序列。我们使用lambda表达式来确定联接的路径和目录内容是否为文件。重要的是要记住,这filter()
将返回一个过滤器对象,因此您应该转换files
为列表以打印内容。
from os import listdir
from os.path import join, isfile
directory_path = "/Users/jhsu/Desktop"
contents = listdir(directory_path)
files = filter(lambda f: isfile(join(directory_path,f)),contents)
print(files) # <filter object at 0x10a5203a0>
print(list(files)) # [list of files]
翻译自:https://medium.com/better-programming/how-to-list-every-file-in-a-directory-in-python-bd431baeb679