"data/cmn.txt"读取zmn.txt文件利用函数和生成器机制,在生成函数中读取10行数据放到列表中,,使用next()函数获取列表数据,直到结尾。python代码
时间: 2024-12-23 09:21:32 浏览: 4
在Python中,你可以使用内置的`open()`函数打开文本文件,并结合`readline()`或`iter()`方法以及生成器来实现这个需求。这里是一个示例代码:
```python
def read_file_lines(file_name, chunk_size=10):
with open(file_name, 'r') as file:
# 使用生成器逐行读取文件
for _ in range(0, None, chunk_size): # 通过无限循环并设置停止条件来读取所有行
lines = []
for line in iter(file.readline, ''):
lines.append(line)
if len(lines) == chunk_size: # 当达到预设的行数时,yield出来
yield lines
lines.clear() # 清空已读取的行
if lines: # 如果还有未处理完的剩余行
yield lines
# 读取并处理zmn.txt文件
for batch_data in read_file_lines('zmn.txt', 10):
print("Batch:", [line.strip() for line in batch_data]) # 打印每批10行的数据
```
在这个代码中,`read_file_lines`函数会按块返回文件内容,每次yield出10行数据。`next()`函数在这里不是必需的,因为我们直接遍历了生成器。如果你确实需要使用`next()`获取数据,你可以这样操作:
```python
generator = read_file_lines('zmn.txt', 10)
while True:
try:
batch_data = next(generator)
print("Batch:", [line.strip() for line in batch_data])
except StopIteration:
break # 当生成器没有更多数据时停止
```
阅读全文