循环读取多个txt文件python
时间: 2024-12-26 11:27:07 浏览: 6
### 实现循环读取多个文本文件
为了实现循环读取多个文本文件,在Python中可以利用`os`模块来遍历指定目录下的所有`.txt`文件,并逐一读取这些文件的内容。下面展示具体的操作方式以及完整的代码示例。
#### 使用 `os.walk()` 遍历目录并读取文件
当需要处理位于同一级或多级子目录内的所有文本文件时,推荐使用`os.walk()`函数。此函数会生成一个三元组列表`(dirpath, dirnames, filenames)`,其中包含了当前路径、该路径下所有的子目录名和文件名[^2]。
```python
import os
def read_multiple_txt_files(directory):
for root, dirs, files in os.walk(directory): # 获取所有文件夹及其内部文件
for name in files:
if name.endswith(".txt"): # 只选择扩展名为 .txt 的文件
filepath = os.path.join(root, name)
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
print(f"File {name}:\n{content}\n{'-'*40}")
```
这段代码定义了一个名为`read_multiple_txt_files`的函数,接受一个参数即要扫描的目标文件夹路径。对于每一个找到的`.txt`文件,都会尝试以只读模式打开它,并打印出文件名称连同其内容[^4]。
#### 利用 `glob.glob()` 进行更简洁的选择
如果只需要查找特定层次结构中的某些类型的文件,则可考虑采用`glob`库提供的功能更为简便的方式:
```python
from glob import glob
import os
pattern = "*.txt"
for filename in glob(os.path.join(".", pattern)):
with open(filename, "r", encoding="utf-8") as file:
data = file.readlines() # 或者使用file.read()一次性读取整个文件
print(data) # 输出每一行数据作为列表项
```
这里展示了另一种方法——通过设置通配符模式匹配所需的文件类型(`*.txt`),并通过调用`glob()`返回符合条件的所有文件路径组成的列表。接着按照常规流程依次访问各个文件对象[^1]。
阅读全文