一次读入多个文件的文件操作类
时间: 2023-07-31 21:10:59 浏览: 67
下面是一个可以一次读入多个文件的文件操作类的示例代码:
```python
class MultiFileReader:
def __init__(self, file_paths):
self.file_paths = file_paths
self.current_file = None
self.file_iterator = self._file_iterator()
def _file_iterator(self):
for file_path in self.file_paths:
with open(file_path, 'r') as f:
self.current_file = f
yield from self.current_file
def __iter__(self):
return self.file_iterator
```
在初始化时,我们传入一个包含多个文件路径的列表。`_file_iterator()`方法是一个生成器函数,它逐个打开文件并返回文件内容的迭代器。在这个迭代器中,我们使用了Python 3.3中引入的`yield from`语法,可以方便地将嵌套生成器的值逐一返回。
最后,我们将`__iter__()`方法返回生成器对象,这个对象就可以像普通的迭代器一样使用,例如:
```python
reader = MultiFileReader(['file1.txt', 'file2.txt'])
for line in reader:
print(line)
```
这个类可以一次读入多个文件,且可以像单个文件一样迭代读取其中的行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)