Python论坛  - 讨论区

标题:[python-chinese] 如何判断文件(有中文)是文本文件,还是二进制文件

2006年11月02日 星期四 16:07

gao. tan gao.tan在gmail.com
星期四 十一月 2 16:07:06 HKT 2006

def is_binary (filename):

    fin = open(filename, 'rb')
    wholething = fin.read()
    fin.close()
    for c in wholething:
        if ord(c) & 0x80:
            return 1
    return 0

¿´µ½ÓÐÈËдÁËÈçÉϵĺ¯Êý£¬ÅжÏÎļþÊÇ·ñΪ¶þ½øÖÆ£¬µ«ÈçÉÏÅб𣬸ù±¾´¦Àí²»ÁËÖÐÎÄ£¬
ÓÐÎ޺ð취£¿
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061102/69444606/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月02日 星期四 23:09

jxppp.liu jxppp.liu在gmail.com
星期四 十一月 2 23:09:04 HKT 2006

gao. tan,您好!

	试探着去进行。
就和Firefox判断网页编码类似。
如果就单纯的进行GBK的出来又会简单些。

伪码:
     1.  读取头部N个字符。
     2.  试着去分析这N个字符,其实就是中文切词。
         统计出来的中文  英文 标点符号 换行等的数目 和不可见字符的数目。     
     3.  可见的为一类,不可见的一类,进行概率计算。
     4.  设定一个Valve阀值。
     5.  超过这个阀值的可以判断为BIN,否则可以判定为文本。而且还是中文混合文本。

Firefox好像也就是这么判断的。
有片FireFox的论文,找找。

======= 2006-11-02 16:08:05 您在来信中写道:=======

>def is_binary (filename):
>
>    fin = open(filename, 'rb')
>    wholething = fin.read()
>    fin.close()
>    for c in wholething:
>        if ord(c) & 0x80:
>            return 1
>    return 0
>
>看到有人写了如上的函数,判断文件是否为二进制,但如上判别,根本处理不了中文,
>有无好办法?
>_______________________________________________
>python-chinese
>Post: send python-chinese在lists.python.cn
>Subscribe: send subscribe to python-chinese-request在lists.python.cn
>Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
>Detail Info: http://python.cn/mailman/listinfo/python-chinese

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        jxppp.liu
        jxppp.liu在gmail.com
          2006-11-02


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月02日 星期四 23:18

jxppp liu jxppp.liu在gmail.com
星期四 十一月 2 23:18:49 HKT 2006

gao. tan,ÄúºÃ£¡

        ÊÔ̽×ÅÈ¥½øÐС£
¾ÍºÍFirefoxÅжÏÍøÒ³±àÂëÀàËÆ¡£
Èç¹û¾Íµ¥´¿µÄ½øÐÐGBKµÄ³öÀ´ÓÖ»á¼òµ¥Ð©¡£

αÂ룺
     1.  ¶ÁÈ¡Í·²¿N¸ö×Ö·û¡£
     2.  ÊÔ×ÅÈ¥·ÖÎöÕâN¸ö×Ö·û£¬Æäʵ¾ÍÊÇÖÐÎÄÇдʡ£
         ͳ¼Æ³öÀ´µÄÖÐÎÄ  Ó¢ÎÄ ±êµã·ûºÅ »»ÐеȵÄÊýÄ¿ ºÍ²»¿É¼û×Ö·ûµÄÊýÄ¿¡£
     3.  ¿É¼ûµÄΪһÀ࣬²»¿É¼ûµÄÒ»À࣬½øÐиÅÂʼÆËã¡£
     4.  É趨һ¸öValve·§Öµ¡£
     5.  ³¬¹ýÕâ¸ö·§ÖµµÄ¿ÉÒÔÅжÏΪBIN,·ñÔò¿ÉÒÔÅж¨ÎªÎı¾¡£¶øÇÒ»¹ÊÇÖÐÎÄ»ìºÏÎı¾¡£

FirefoxºÃÏñÒ²¾ÍÊÇÕâôÅжϵġ£
ÓÐƬFireFoxµÄÂÛÎÄ£¬ÕÒÕÒ¡£

======= 2006-11-02 16:08:05 ÄúÔÚÀ´ÐÅÖÐдµÀ£º=======

>def is_binary (filename):
>
>    fin = open(filename, 'rb')
>    wholething = fin.read()
>    fin.close()
>    for c in wholething:
>        if ord(c) & 0x80:
>            return 1
>    return 0
>
>¿´µ½ÓÐÈËдÁËÈçÉϵĺ¯Êý£¬ÅжÏÎļþÊÇ·ñΪ¶þ½øÖÆ£¬µ«ÈçÉÏÅб𣬸ù±¾´¦Àí²»ÁËÖÐÎÄ£¬
>ÓÐÎ޺ð취£¿
>_______________________________________________
>python-chinese
>Post: send python-chinese在lists.python.cn
>Subscribe: send subscribe to python-chinese-request在lists.python.cn
>Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
>Detail Info: http://python.cn/mailman/listinfo/python-chinese

= = = = = = = = = = = = = = = = = = = =
ÖÂ
Àñ£¡


jxppp.liu
jxppp.liu在gmail.com
2006-11-02
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061102/9b3ac5ed/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月03日 星期五 09:30

gao. tan gao.tan在gmail.com
星期五 十一月 3 09:30:01 HKT 2006

ллÄú£¡
Äã˵µÄÕâ¸öͳ¼ÆµÄ°ì·¨Ó¦¸ÃûÎÊÌ⣬ÎÒÔÙ²é²é¿´Äã˵µÄÄÇƬÂÛÎÄ.unix ϵÄfile ÃüÁîÓ¦¸ÃÒ²ÊDzÉÈ¡µÄͳ¼Æ°ì·¨.


2006/11/2, jxppp.liu <jxppp.liu在gmail.com>:
>
>         ÊÔ̽×ÅÈ¥½øÐС£
> ¾ÍºÍFirefoxÅжÏÍøÒ³±àÂëÀàËÆ¡£
> Èç¹û¾Íµ¥´¿µÄ½øÐÐGBKµÄ³öÀ´ÓÖ»á¼òµ¥Ð©¡£
>
> αÂ룺
>      1.  ¶ÁÈ¡Í·²¿N¸ö×Ö·û¡£
>      2.  ÊÔ×ÅÈ¥·ÖÎöÕâN¸ö×Ö·û£¬Æäʵ¾ÍÊÇÖÐÎÄÇдʡ£
>          ͳ¼Æ³öÀ´µÄÖÐÎÄ  Ó¢ÎÄ ±êµã·ûºÅ »»ÐеȵÄÊýÄ¿ ºÍ²»¿É¼û×Ö·ûµÄÊýÄ¿¡£
>      3.  ¿É¼ûµÄΪһÀ࣬²»¿É¼ûµÄÒ»À࣬½øÐиÅÂʼÆËã¡£
>      4.  É趨һ¸öValve·§Öµ¡£
>      5.  ³¬¹ýÕâ¸ö·§ÖµµÄ¿ÉÒÔÅжÏΪBIN,·ñÔò¿ÉÒÔÅж¨ÎªÎı¾¡£¶øÇÒ»¹ÊÇÖÐÎÄ»ìºÏÎı¾¡£
>
> FirefoxºÃÏñÒ²¾ÍÊÇÕâôÅжϵġ£
> ÓÐƬFireFoxµÄÂÛÎÄ£¬ÕÒÕÒ¡£
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061103/5b53ca19/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号