【问题标题】:Migration python 2 to 3: types.FileType迁移 python 2 到 3:types.FileType
【发布时间】:2023-03-13 06:06:01
【问题描述】:

使用2to3 从 Python 2 迁移到 Python 3 时,types.FileType 的导入尚未适配。

isinstance()检查io.TextIOWrapperio.StringIO是否合适,以便区分这两种情况?

或者,有没有更现代的 Pythonic 方式来处理这个问题?

【问题讨论】:

  • 你为什么关心这种区别?
  • 因为 StringIO 通常没有与之关联的.name。错误报告会有所不同。

标签: python file io


【解决方案1】:

这里的常用方法是EAFP:尝试读取name 属性(毕竟,它可能有用地存在于任何类型的类似文件的流包装器上)并回退到AttributeError 上的其他行为。如果您只需要一个默认值,请使用getattr(f,'name',default)default 可以是 "<unknown>" 或其他类型(如 None),它明确保留有关属性是否存在的信息(作为字符串)。

【讨论】:

    猜你喜欢
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多