在处理大量文件时,批量获取文件名是一个常见的需求。Python 提供了多种方法来实现这一功能,以下是一些实用的技巧,帮助你轻松管理海量文件。1. 使用 os.listdir() 和 os.path.j...
在处理大量文件时,批量获取文件名是一个常见的需求。Python 提供了多种方法来实现这一功能,以下是一些实用的技巧,帮助你轻松管理海量文件。
os.listdir() 和 os.path.join()os.listdir() 函数可以列出指定目录下的所有文件和文件夹。结合 os.path.join() 函数,你可以获取到完整的文件路径。
import os
# 假设我们要获取当前目录下的所有文件名
current_directory = os.getcwd()
files = os.listdir(current_directory)
# 获取完整的文件路径
full_paths = [os.path.join(current_directory, file) for file in files]
# 打印文件名
for file in files: print(file)glob.glob() 或 glob.iglob()glob 模块提供了搜索符合特定模式文件的方法。glob.glob() 返回一个列表,而 glob.iglob() 返回一个迭代器。
import glob
# 获取当前目录下所有以 .txt 结尾的文件名
files = glob.glob('*.txt')
# 打印文件名
for file in files: print(file)pathlib.PathPython 3.4 引入了 pathlib 模块,它提供了一种面向对象的方式来处理文件系统路径。
from pathlib import Path
# 获取当前目录下所有 .txt 文件
files = Path('.').glob('*.txt')
# 打印文件名
for file in files: print(file.name)os.scandir() 或 os.walk()os.scandir() 函数可以遍历目录,并返回一个迭代器,其中包含目录中的文件和子目录。os.walk() 函数可以递归遍历目录树。
import os
# 使用 os.scandir()
for entry in os.scandir('.'): if entry.is_file(): print(entry.name)
# 使用 os.walk()
for root, dirs, files in os.walk('.'): for file in files: print(os.path.join(root, file))如果你需要根据文件名中的特定模式来获取文件,可以使用正则表达式。
import re
import os
# 获取包含特定模式的文件名
pattern = re.compile(r'^report_(\d{4})\.txt$')
for file in os.listdir('.'): if pattern.match(file): print(file)以上是几种在 Python 中批量获取文件名的常用方法。根据你的具体需求,你可以选择最适合你的方法。掌握这些技巧,可以帮助你更高效地管理海量文件。