python – 如何正确引发FileNotFoundError?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何正确引发FileNotFoundError?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1249字,纯文字阅读大概需要2分钟。
内容图文
我使用的第三方库很好但不按我想要的方式处理不存在的文件.给它一个不存在的文件,而不是提高旧的
FileNotFoundError: [Errno 2] No such file or directory: 'nothing.txt'
它提出了一些模糊的信息:
OSError: Syntax error in file None (line 1)
我不想处理丢失的文件,不想捕获也不想处理异常,不想引发自定义异常,也不希望我打开文件,也不想创建它(如果它不存在).
我只想检查它是否存在(os.path.isfile(filename)将执行该技巧)如果没有,那么只需引发一个正确的FileNotFoundError.
我试过这个:
#!/usr/bin/env python3
import os
if not os.path.isfile("nothing.txt"):
raise FileNotFoundError
什么只输出:
Traceback (most recent call last):
File "./test_script.py", line 6, in <module>
raise FileNotFoundError
FileNotFoundError
这比“文件无语法中的语法错误”更好,但是如何用正确的消息引发“真正的”python异常,而不必重新实现它?
解决方法:
传递参数:
import errno
import os
raise FileNotFoundError(
errno.ENOENT, os.strerror(errno.ENOENT), filename)
FileNotFoundError是OSError的子类,它带有几个参数.第一个是来自errno module的错误代码(找不到文件总是errno.ENOENT),第二个是错误消息(使用os.strerror()来获取它),并将文件名作为第3个传递.
回溯中使用的最终字符串表示形式是根据这些参数构建的:
>>> print(FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), 'foobar'))
[Errno 2] No such file or directory: 'foobar'
内容总结
以上是互联网集市为您收集整理的python – 如何正确引发FileNotFoundError?全部内容,希望文章能够帮你解决python – 如何正确引发FileNotFoundError?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。