在Python中,获取一个文件夹下所有文件名是一个常见的需求。以下是一些高效的方法来实现这一目标。方法一:使用os.listdir()和os.path.join()os.listdir()函数可以列出...
在Python中,获取一个文件夹下所有文件名是一个常见的需求。以下是一些高效的方法来实现这一目标。
os.listdir()和os.path.join()os.listdir()函数可以列出指定路径下的文件和文件夹名。结合os.path.join()函数,可以构建完整的文件路径。
import os
def list_files_in_directory(directory): return [file for file in os.listdir(directory) if os.path.isfile(os.path.join(directory, file))]
# 使用示例
directory_path = '/path/to/your/directory'
files = list_files_in_directory(directory_path)
print(files)os.listdir(directory):列出目录中的文件和文件夹名。os.path.isfile(path):检查指定的路径是否是一个文件。os.scandir()os.scandir()是一个更高效的方法,因为它返回一个迭代器,可以遍历目录中的所有条目,而不是一次性将它们全部加载到内存中。
import os
def list_files_in_directory(directory): with os.scandir(directory) as entries: for entry in entries: if entry.is_file(): yield entry.name
# 使用示例
directory_path = '/path/to/your/directory'
files = list_files_in_directory(directory_path)
for file in files: print(file)os.scandir(directory):返回一个迭代器,遍历目录中的所有条目。entry.is_file():检查当前条目是否是一个文件。yield关键字,将函数转换为生成器,这样可以逐个处理文件名,而不是一次性加载所有文件名。pathlibpathlib模块是Python 3.4及以上版本中提供的一个现代、面向对象的文件系统路径库。
from pathlib import Path
def list_files_in_directory(directory): return [file.name for file in Path(directory).iterdir() if file.is_file()]
# 使用示例
directory_path = '/path/to/your/directory'
files = list_files_in_directory(directory_path)
print(files)Path(directory):创建一个Path对象,代表指定的目录。iterdir():返回一个迭代器,遍历目录中的所有条目。file.is_file():检查当前条目是否是一个文件。以上三种方法都可以高效地获取文件夹下的所有文件名。选择哪种方法取决于你的具体需求和个人偏好。os.scandir()和pathlib通常更现代,更符合Pythonic风格。