Python 读取文件通配符
在编程中,我们经常需要读取符合特定规则的文件。例如,我们可能需要读取某个目录下所有以特定文件扩展名结尾的文件。Python 提供了一种简单而灵活的方法来实现这个目标,即通配符(wildcard)。
通配符是一种模式匹配的语法,它允许我们通过使用特殊字符来匹配文件名中的字符。在 Python 中,我们可以使用 glob
模块来进行通配符匹配。glob
模块提供了一个功能强大的函数 glob()
,它可以返回满足特定规则的文件路径列表。
下面是使用 glob()
函数进行文件通配符匹配的示例代码:
import glob
# 匹配当前目录下所有以 .txt 结尾的文件
txt_files = glob.glob('*.txt')
# 打印匹配到的文件路径
for file in txt_files:
print(file)
在上面的代码中,glob.glob('*.txt')
表示匹配当前目录下所有以 .txt
结尾的文件,并返回一个包含这些文件路径的列表。然后,我们可以使用 for
循环遍历这个列表,并对每个文件路径执行相应的操作。
除了匹配当前目录下的文件,glob()
函数还可以匹配任意目录下的文件。例如,我们可以使用 glob.glob('**/*.txt')
匹配当前目录及其子目录下所有以 .txt
结尾的文件。
此外,通配符还支持使用 ?
和 []
来匹配单个字符和字符范围。
?
匹配任意单个字符。例如,glob.glob('file?.txt')
可以匹配file1.txt
、file2.txt
等文件。[]
匹配指定范围内的字符。例如,glob.glob('file[0-9].txt')
可以匹配file1.txt
、file2.txt
等文件。
下面是一个使用通配符匹配的更复杂的示例:
import glob
# 匹配当前目录及其子目录下所有以 a、b、c、d、e、f 或 g 开头、以 .txt 结尾的文件
files = glob.glob('[a-g]*/*.txt')
# 打印匹配到的文件路径
for file in files:
print(file)
在上面的代码中,glob.glob('[a-g]*/*.txt')
表示匹配当前目录及其子目录下所有以 a、b、c、d、e、f 或 g 开头、以 .txt
结尾的文件。
通配符提供了一种方便灵活的方法来读取符合特定规则的文件。无论是简单的文件匹配还是复杂的文件路径匹配,Python 的 glob
模块都能满足我们的需求。在使用通配符匹配时,我们可以根据具体的需求来选择合适的通配符模式,并结合其他 Python 的文件处理模块来完成相应的操作。
希望本篇文章对您在 Python 中读取文件时使用通配符提供了帮助和指导。祝您在编程中取得更好的效果!
参考资料:
- [Python glob 模块文档](