前言

使用Python获取文件夹下的所有文件时,存在多种方式。


1. os.listdir

  • os.listdir:参数为文件夹路径,可以返回文件夹下的所有子文件夹、文件名称。

示例:

import ospath = 'D:\Workspace'for file_name in os.listdir(path):    print(file_name)

注意,不能返回子文件夹下的文件,并且仅返回名称。


2. os.walk

  • os.walk:参数为文件夹路径,返回3个内容:绝对路径、子文件夹、文件名。 此方法可以遍历文件夹下的所有文件、子文件及内的所有文件:

例如:
D:/workspace/folder/text1.txt
D:/workspace/folder/text2.txt
此方法在输入的path为D:/workspace时,第一次遍历会获取/workspace下的所有文件和文件夹;第二次遍历会获取/workspace/folder下的所有文件和文件夹。因此需要对结果进行循环,以获取所有文件。

示例:

import ospath = 'D:\Workspace'for root, dirs, files in os.walk(path):    print(root)    print(dirs)    print(files)

返回:

D:\Workspace['folder'][]D:\Workspace\folder[]['text1.txt', 'text2.txt']

3. glob.glob

  • glob:参数为路径以及文件过滤条件,若不设置过滤需填写为*,此函数会返回包括路径的文件夹和文件名

示例:

import globpath = 'D:\Workspace\folder\*'for file_abs in glob.glob(path):    print(file_abs)

返回:

D:\Workspace\folder\text1.txtD:\Workspace\folder\text2.txt

注意,不能返回子文件夹下的文件,并且返回文件名与绝对路径。