Python读取文件夹以及文件夹下所有的文件名
1. 引言
在进行文件处理时,有时候我们需要读取一个文件夹下的所有文件名。Python提供了各种方法来实现这个目标。本文将介绍几种常用的方法来读取文件夹及其下的所有文件名,并给出相应的示例代码。
2. 使用os模块
os模块是Python中用于与操作系统交互的一个模块,其中提供了许多与文件和目录相关的功能。我们可以使用os模块中的函数来读取文件夹和文件的列表。
下面是一个简单的示例,演示了如何使用os模块读取文件夹下的所有文件名:
import os
def get_files_in_folder(folder_path):
file_names = []
# 遍历文件夹中的所有文件名
for filename in os.listdir(folder_path):
# 获取完整文件路径
file_path = os.path.join(folder_path, filename)
# 如果是文件,则将文件名添加到列表中
if os.path.isfile(file_path):
file_names.append(filename)
return file_names
在上述代码中,我们定义了一个get_files_in_folder
函数,接受一个文件夹路径参数,并返回该文件夹下的所有文件名。函数首先创建一个空列表file_names
,然后利用os.listdir
函数获取文件夹中的所有文件名。对于每个文件名,我们使用os.path.join
函数构建完整的文件路径,然后通过os.path.isfile
函数判断其是否为文件。如果是文件,则将文件名添加到file_names
列表中。最后,函数返回file_names
列表。
下面是一个示例,演示了如何使用上述函数来读取文件夹/home/user/documents
下的所有文件名:
folder_path = '/home/user/documents'
files = get_files_in_folder(folder_path)
for file in files:
print(file)
示例输出:
file1.txt
file2.pdf
file3.docx
3. 使用pathlib模块
pathlib模块是Python 3.4引入的一个模块,用于处理文件路径。它提供了一种更简洁的方式来操作文件和目录路径。我们可以使用pathlib模块来读取文件夹和文件的列表。
下面是一个使用pathlib模块读取文件夹下所有文件名的示例代码:
from pathlib import Path
def get_files_in_folder(folder_path):
file_names = []
# 创建Path对象
folder = Path(folder_path)
# 遍历文件夹中的所有文件名
for file in folder.iterdir():
# 如果是文件,则将文件名添加到列表中
if file.is_file():
file_names.append(file.name)
return file_names
在上述代码中,我们首先导入了Path
类,然后定义了一个get_files_in_folder
函数,与之前的示例类似。函数接受一个文件夹路径参数,并返回该文件夹下的所有文件名。函数首先创建一个空列表file_names
,然后利用Path
类创建一个Path对象。我们使用Path.iterdir()
方法遍历文件夹中的所有文件和子文件夹,对于每个文件,使用File.is_file()
方法判断其是否为文件。如果是文件,则将文件名添加到file_names
列表中。最后,函数返回file_names
列表。
下面是一个示例,演示了如何使用上述函数来读取文件夹/home/user/documents
下的所有文件名:
folder_path = '/home/user/documents'
files = get_files_in_folder(folder_path)
for file in files:
print(file)
示例输出:
file1.txt
file2.pdf
file3.docx
4. 使用glob模块
glob模块是Python中的一个标准模块,用于根据特定的模式匹配文件路径。我们可以使用glob模块通过指定模式来获取文件夹下符合条件的文件名。
下面是一个使用glob模块读取文件夹下所有文件名的示例代码:
import glob
def get_files_in_folder(folder_path):
# 构建文件夹路径模式
pattern = folder_path + '/*'
# 获取文件夹下所有文件名
file_names = glob.glob(pattern)
return file_names
在上述代码中,我们首先导入了glob
模块,然后定义了一个get_files_in_folder
函数,接受一个文件夹路径参数,并返回该文件夹下的所有文件名。函数首先使用folder_path
和*
构建一个文件夹路径模式,然后使用glob.glob
函数获取符合该模式的文件名列表。最后,函数返回该文件名列表。
下面是一个示例,演示了如何使用上述函数来读取文件夹/home/user/documents
下的所有文件名:
folder_path = '/home/user/documents'
files = get_files_in_folder(folder_path)
for file in files:
print(file)
示例输出:
/home/user/documents/file1.txt
/home/user/documents/file2.pdf
/home/user/documents/file3.docx
5. 总结
本文介绍了三种常用的方法来读取文件夹及其下的所有文件名,包括使用os模块、pathlib模块和glob模块。通过掌握这些方法,我们可以轻松地读取和处理文件夹中的所有文件名,从而进行后续的文件处理工作。