Python 获取目录下文件列表
1. 引言
在进行文件操作的过程中,常常需要获取某个目录下的文件列表。例如,我们可能需要遍历某个文件夹中的所有文件,或者查找符合特定条件的文件。Python 提供了多种方法来获取目录下的文件列表,本文将详细介绍这些方法,并给出相应的示例代码。
2. 使用 os
模块获取文件列表
Python 的内置模块 os
提供了一些方法来获取文件系统中的信息,包括获取目录下文件列表。我们可以使用 os.listdir()
方法来获取指定目录下的所有文件和文件夹的名称。
import os
def get_file_list(directory):
file_list = os.listdir(directory)
return file_list
以下是一个使用示例:
file_list = get_file_list("path/to/directory")
print(file_list)
运行结果类似如下:
['file1.txt', 'file2.py', 'subdirectory']
通过使用 os.listdir()
方法,我们可以轻松地获取目录下的文件列表。
3. 使用 glob
模块获取文件列表
Python 的第三方库 glob
提供了一个更简单的方法来获取文件列表,支持使用通配符进行模式匹配。我们可以使用 glob.glob()
方法来获取符合指定模式的文件列表。
import glob
def get_file_list(pattern):
file_list = glob.glob(pattern)
return file_list
以下是一个使用示例:
file_list = get_file_list("path/to/directory/*")
print(file_list)
运行结果类似如下:
['path/to/directory/file1.txt', 'path/to/directory/file2.py']
通过使用 glob.glob()
方法,我们可以方便地获取符合特定模式的文件列表。
4. 使用 pathlib
模块获取文件列表
Python 3.4+ 引入了 pathlib
模块,它提供了一种面向对象的路径操作方式。我们可以使用 pathlib.Path
类来获取目录下的文件列表,并进行更多的路径操作。
from pathlib import Path
def get_file_list(directory):
path = Path(directory)
file_list = [str(file) for file in path.iterdir() if file.is_file()]
return file_list
以下是一个使用示例:
file_list = get_file_list("path/to/directory")
print(file_list)
运行结果类似如下:
['path/to/directory/file1.txt', 'path/to/directory/file2.py']
通过使用 pathlib.Path
类,我们可以更加灵活地进行路径操作,并获取目录下的文件列表。
5. 遍历子目录获取文件列表
如果要获取某个目录下所有子目录中的文件列表,我们可以使用递归的方式来实现。下面是一个使用递归方法获取目录下文件列表的示例代码:
import os
def get_file_list(directory):
file_list = []
for root, dirs, files in os.walk(directory):
for file in files:
file_list.append(os.path.join(root, file))
return file_list
以下是一个使用示例:
file_list = get_file_list("path/to/directory")
print(file_list)
运行结果类似如下:
['path/to/directory/file1.txt', 'path/to/directory/subdirectory/file2.py']
通过使用递归的方式,我们可以获取指定目录下所有子目录中的文件列表。
6. 文件筛选
有时候,我们需要获取符合特定条件的文件列表,例如按文件扩展名筛选文件。我们可以通过在获取文件列表后,对其进行筛选来实现。
以下是一个示例代码,用于获取目录下所有的 .txt
文件:
import os
def get_file_list(directory):
file_list = os.listdir(directory)
txt_files = [file for file in file_list if file.endswith(".txt")]
return txt_files
以下是一个使用示例:
txt_files = get_file_list("path/to/directory")
print(txt_files)
运行结果类似如下:
['file1.txt', 'file2.txt']
通过筛选文件列表,我们可以获取到符合特定条件的文件列表。
7. 总结
本文介绍了使用 Python 获取目录下文件列表的多种方法。我们可以使用 os
模块的 os.listdir()
方法、glob
模块的 glob.glob()
方法、pathlib
模块的 pathlib.Path
类、以及递归的方式来实现。另外,我们还介绍了如何对文件列表进行筛选,获取符合特定条件的文件列表。