如果给出一个文件对象,如何确定它是以字节模式打开的(read
返回bytes
),还是文本模式打开的(read
返回str
)?应该适用于读写两种情况。
换句话说:
>>> with open('filename', 'rb') as f:
... is_binary(f)
...
True
>>> with open('filename', 'r') as f:
... is_binary(f)
...
False
(这个问题听起来与此相关,但实际上不是。那个问题是关于猜测文件是否为二进制的,而不是从其内容中确定。)
.mode
属性的类似文件的对象,更安全的测试方法是:if 'b' not in getattr(file, 'mode', 'b')
。 - Julien Palard