在Python中,我们可以使用`open`函数的`mode`参数来判断一个文件是文本还是二进制。如果模式是以"r"、"w"或"a"结尾,那么它就是文本模式,否则就是二进制模式。
下面是一个代码示例:
```python
def is_binary_file(file_path):
try:
# 尝试以二进制模式打开文件
with open(file_path, 'rb') as f:
# 如果可以成功打开,那么它就是二进制文件
return True
except UnicodeDecodeError:
# 如果抛出UnicodeDecodeError异常,那么它就不是二进制文件
return False
# 测试用例
print(is_binary_file("text.txt")) # 应该返回False,因为这是一个文本文件
print(is_binary_file("binary.bin")) # 应该返回True,因为这是一个二进制文件
```
在这个例子中,我们首先尝试以二进制模式打开文件。如果成功,那么我们就知道它是一个二进制文件。如果我们捕获到一个`UnicodeDecodeError`异常,那么我们就知道它不是一个二进制文件,因为这通常意味着文件是文本文件,但使用了无法解码的字节。
请注意,这个方法并不完美,因为某些文件可能既可以以文本模式也可以以二进制模式打开。但是,对于大多数常见的文件类型(如文本和二进制图像),这个方法应该足够好用。
1万+

被折叠的 条评论
为什么被折叠?



