Python 怎么判断一个文件是否是二进制文件呢

logbird 发布于 2013/09/02 17:04
阅读 2K+
收藏 0

Python 怎么判断一个文件是否是二进制文件呢

比如 我在网上抓一组文件,这组文件有图片,有普通文本,有压缩包,有PDF各种类型的文件

如果是图片 或者 pdf保存的话需要使用二进制方式保存:

open(fileName, "wb").write(content)

文本需要使用文本方式保存

open(fileName, "w").write(content)

有没有什么 好的办法去辨别这个文件是否是二进制文件呢

加载中
0
七念
七念
import mimetypes

mime = mimetypes.guess_type(file)

0
logbird
logbird
def isText(s):
    text_characters = "".join(map(chr, range(32, 127)) + list("\n\r\t\b"))
    _null_trans = string.maketrans("", "")
    '''
        判断文件是文本还是二进制
    '''
    if "\0" in s:
        return False
   
    if not s:
        return 1
    t = s.translate(_null_trans, text_characters)
    if float(len(t))/float(len(s)) > 0.30:
        return False
    return True


已经解决了 这个函数 开始 判断不准确 经过测试 为 len(t) /len(s) 这个除法运算的问题 转成float就OK了
Xsank
Xsank
回复 @logbird : 就是不知道误判率大概有多高
logbird
logbird
回复 @IdleMan : http://book.51cto.com/art/201005/198263.htm
IdleMan
IdleMan
什么原理
返回顶部
顶部