首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]掌握Python批量获取文件名的小技巧,轻松管理海量文件!

发布于 2025-07-15 06:30:34
0
446

在处理大量文件时,批量获取文件名是一个常见的需求。Python 提供了多种方法来实现这一功能,以下是一些实用的技巧,帮助你轻松管理海量文件。1. 使用 os.listdir() 和 os.path.j...

在处理大量文件时,批量获取文件名是一个常见的需求。Python 提供了多种方法来实现这一功能,以下是一些实用的技巧,帮助你轻松管理海量文件。

1. 使用 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)

2. 使用 glob.glob()glob.iglob()

glob 模块提供了搜索符合特定模式文件的方法。glob.glob() 返回一个列表,而 glob.iglob() 返回一个迭代器。

import glob
# 获取当前目录下所有以 .txt 结尾的文件名
files = glob.glob('*.txt')
# 打印文件名
for file in files: print(file)

3. 使用 pathlib.Path

Python 3.4 引入了 pathlib 模块,它提供了一种面向对象的方式来处理文件系统路径。

from pathlib import Path
# 获取当前目录下所有 .txt 文件
files = Path('.').glob('*.txt')
# 打印文件名
for file in files: print(file.name)

4. 使用 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))

5. 使用正则表达式

如果你需要根据文件名中的特定模式来获取文件,可以使用正则表达式。

import re
import os
# 获取包含特定模式的文件名
pattern = re.compile(r'^report_(\d{4})\.txt$')
for file in os.listdir('.'): if pattern.match(file): print(file)

总结

以上是几种在 Python 中批量获取文件名的常用方法。根据你的具体需求,你可以选择最适合你的方法。掌握这些技巧,可以帮助你更高效地管理海量文件。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流