Python 获取文件夹下文件名
介绍
在编程中,经常会遇到需要获取一个文件夹下的所有文件名的情况。Python提供了多种方法来实现这个功能。本文将介绍一些常用的方法以及它们的特点和应用场景。
方法一:使用os模块的listdir函数
os模块是一个Python标准库中的模块,其中包含了许多与操作系统相关的函数。其中的listdir函数可以用于获取指定文件夹下的所有文件和文件夹名称。
下面是一个简单的示例,演示如何使用os模块的listdir函数来获取文件夹下的所有文件名:
import os
folder_path = '/path/to/folder'
# 获取文件夹下的所有文件名
file_names = os.listdir(folder_path)
# 输出文件名
for file_name in file_names:
print(file_name)
运行以上代码,将会输出指定文件夹下的所有文件名。
方法二:使用glob模块的glob函数
glob模块是一个用于搜索指定文件夹下的文件的模块。glob函数可以通过指定的通配符模式来匹配文件名。
下面是一个示例,演示如何使用glob模块的glob函数来获取文件夹下的所有文件名:
import glob
folder_path = '/path/to/folder'
# 获取文件夹下的所有文件名
file_names = glob.glob(folder_path + '/*')
# 输出文件名
for file_name in file_names:
print(file_name)
运行以上代码,将会输出指定文件夹下的所有文件名。
方法三:使用Path对象
Path对象是Python标准库中的pathlib模块中表示文件和文件夹路径的对象。它提供了一种简洁和易于使用的API来操作文件和文件夹。
下面是一个示例,演示如何使用Path对象来获取文件夹下的所有文件名:
from pathlib import Path
folder_path = Path('/path/to/folder')
# 获取文件夹下的所有文件名
file_names = [str(file) for file in folder_path.iterdir() if file.is_file()]
# 输出文件名
for file_name in file_names:
print(file_name)
运行以上代码,将会输出指定文件夹下的所有文件名。
方法四:递归获取文件夹下的文件名
以上的方法只能获取指定文件夹下的直接子文件名,并不能获取子文件夹中的文件名。如果需要获取子文件夹中的文件名,可以使用递归的方式来实现。
下面是一个示例,演示如何使用递归方式来获取文件夹下的所有文件名:
import os
def get_file_names(folder_path):
file_names = []
for root, dirs, files in os.walk(folder_path):
for file in files:
file_names.append(os.path.join(root, file))
return file_names
folder_path = '/path/to/folder'
# 获取文件夹下的所有文件名
file_names = get_file_names(folder_path)
# 输出文件名
for file_name in file_names:
print(file_name)
运行以上代码,将会输出指定文件夹下及其子文件夹中的所有文件名。
总结
本文介绍了四种常用的方法来获取文件夹下的文件名。根据实际需求选择合适的方法来实现,可以提高代码的效率和可读性。