在 Python 中如何优雅地处理文件读取的 EOF 错误?
时间: 2024-09-09 13:00:46 浏览: 87
从C语言中读取Python 类文件对象
在 Python 中,处理文件读取的 EOF(End of File)异常是一个常见的做法,因为 Python 提供了一种更优雅的方式来捕获并处理这类错误。你可以使用 `try-except` 结构结合内置的 `open()` 和 `readline()` 或 `readlines()` 方法来做到这一点。例如:
```python
with open('file.txt', 'r') as f:
while True:
try:
line = f.readline()
if not line: # 如果读到空字符串,说明到了文件尾
break
# 进行处理,如打印或分析每行
print(line)
except UnicodeDecodeError:
pass # 可能会遇到编码问题,忽略并继续读下一行
except FileNotFoundError:
print("文件未找到")
```
在这个例子中,`try` 内部尝试读取每一行,如果文件结束(`readline()` 返回 `''`),则跳出循环。如果在读取过程中遇到 `UnicodeDecodeError`(例如处理非 UTF-8 编码文件),可以选择捕获并忽略这个异常。
阅读全文