python - Python 尝试在与 open 一起使用时出现意外情况
问题描述
最近我一直在练习 Jason Cannon 在 O'reilly 上的课程:https ://learning.oreilly.com/videos/python-for-beginners/9781789617122/9781789617122-video10_3/
在“文件,第二部分”部分的 6:55,我在按照视频中的想法练习错误捕获时遇到了问题。我的代码:
with open('data.txt') as file:
try:
file_content = file.read()
except:
file_content = ''
print(len(file_content))
这个想法是在找不到文件时捕获错误,try 块运行但 except 块不运行。我预计 file_content 的长度为 0 而不会出现错误。请告诉我哪里做错了。非常感谢
解决方案
如果未找到该文件,则会open
引发错误,而不是尝试从中读取。
try:
with open('data.txt') as file:
file_content = file.read()
except (FileNotFoundError, IOError):
file_content = ''
请注意,如果open
引发FileNotFound
错误,则实际上不会创建上下文管理器,因此在控制传递给异常处理程序之前,with
语句不需要尝试执行方法。__exit__
推荐阅读
- javascript - 将 ID 令牌发送到 firebaseui 中的 signInSuccessUrl
- r - 如何计算大型数据集中出现的次数
- cloud-foundry - cf push 和 cf restage 的区别
- css - 如何在 Internet Explorer 中为实时网站保存开发人员工具中的 css 更改
- c# - 我想将图像和文本放入列表框项(C# wpf)
- netsuite - 在变量 freemarker 中显示引号 - netsuite 高级 pdf
- powershell - 如何在powershell中访问嵌套对象的绝对值
- java - 如何在java或android中“从没有关键字的文本中识别姓名和父亲姓名”?
- php - 查询 50 GB 数据时性能有什么更好的?是带有条件的 MYSQL SELECT 还是带有过滤器表达式的 Dynamodb SCAN?
- node.js - 无法访问 Lambda 函数中的环境变量