使用 2to3
从 Python 2 迁移到 Python 3 时,types.FileType
的导入尚未调整。
是否适合使用 isinstance()
检查 io.TextIOWrapper
和 io.StringIO
以区分这两种情况?
或者,有没有更现代的Pythonic方式来处理这个问题?
最佳答案
这里通常的方法是 EAFP :尝试阅读 name
属性(毕竟,它可能有用地存在于任何类型的类似文件的流包装器上)并回退到 AttributeError
上的其他行为。如果您只需要默认值,请使用 getattr(f,'name',default)
; default
可以是"<unknown>"
或其他类型的内容(例如 None
),明确保留有关属性是否存在的信息(作为字符串)。
关于python - 迁移 python 2 到 3 : types. 文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59487695/