Итератор по chunk'ам файла
Python
Senior
Авито
01.01.2025
Реализуйте класс `FileChunks`, который является итератором и итерируется по файлу кусками фиксированного размера в байтах.
```python
chunks = FileChunks("data.bin", chunk_size=1024)
for part in chunks:
... # part: bytes
```
Ответы
Решение 1
```python
class FileChunks:
def __init__(self, path: str, chunk_size: int = 1024):
self.path = path
self.chunk_size = chunk_size
self._file = None
def __iter__(self):
self._file = open(self.path, "rb")
return self
def __next__(self) -> bytes:
assert self._file is not None
data = self._file.read(self.chunk_size)
if not data:
self._file.close()
raise StopIteration
return data
```