You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python 3编写代码查看所有文件方法与错误类型?

获取文件对象的所有方法

要查看文件对象的所有可用方法(如close()、detach()、readline()等),你需要先创建文件类实例,再通过dir()筛选出非特殊可调用方法。示例代码如下:

import io

# 用StringIO创建内存文件实例,无需生成实际磁盘文件
file_obj = io.StringIO()

# 筛选并排序非特殊方法
file_methods = [
    method for method in dir(file_obj)
    if not method.startswith('__') and callable(getattr(file_obj, method))
]

# 输出结果
for method in sorted(file_methods):
    print(method)

说明:

  • io.StringIO()模拟了文件对象的行为,避免了创建实际文件的繁琐操作。
  • 列表推导式过滤掉了以__开头的特殊方法(如__init__),只保留可调用的业务方法。

获取所有内置异常类型

要查看所有内置异常类型(如ArithmeticError、AssertionError、MemoryError等),可以遍历builtins模块的属性,筛选出Exception的子类:

import builtins

# 收集所有内置异常类
exceptions = []
for name, obj in vars(builtins).items():
    # 检查是否为Exception的子类且是类类型
    if isinstance(obj, type) and issubclass(obj, Exception):
        exceptions.append(name)

# 排序并输出结果
for exc in sorted(exceptions):
    print(exc)

说明:

  • builtins模块包含所有Python内置对象,包括各类异常类。
  • 通过vars(builtins)获取模块属性后,筛选逻辑确保只保留合法的异常类。

为什么直接用dir()可能失败?
  • 文件方法场景:若直接对open函数调用dir(),得到的是函数自身的属性,而非文件对象的方法。必须先创建文件实例(如f = open('test.txt', 'r'))再调用dir(f)。
  • 异常类型场景:直接调用dir(__builtins__)会返回所有内置对象名称,但无法直接区分哪些是异常类,需要额外的类型判断筛选。

内容的提问来源于stack exchange,提问作者Bosser445

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:23:29