在Python中列出目录中的每个文件

遍历本地文件存储是一项方便的技能。在本地系统内工作,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) # 
print(list(files)) # [list of files]

翻译自:https://medium.com/better-programming/how-to-list-every-file-in-a-directory-in-python-bd431baeb679

你可能感兴趣的:(在Python中列出目录中的每个文件)