如何判断Python中文件是否是二进制文件(非文本)?
我正在Python中搜索大量文件,并始终在二进制文件中获取匹配项。这使输出看起来异常混乱。
我知道我可以使用grep -I,但是我对数据所做的事情超出了grep所允许的范围。
grep -I
过去,我只会搜索大于的字符0x7f,但是utf8类似的字符在现代系统上是不可能做到的。理想情况下,解决方案应该很快。
0x7f
utf8
您还可以使用mimetypes模块:
import mimetypes ... mime = mimetypes.guess_type(file)
编译二进制mime类型的列表非常容易。例如,Apache分发了mime.types文件,您可以将其解析为一组列表(二进制和文本),然后检查该mime是否在文本列表或二进制列表中。