zoukankan      html  css  js  c++  java
  • python读取 UCS2 little endian(utf16le) 格式的文件

    今天开发帮忙写了一个读取windows文件签名的小程序,并把签名信息写到txt文件中,用UE打开发现居然是UCS-2 LE编码,几经查找,如下是读取的文本。

    >>> a
    '\xff\xfe.\x00/\x00\\\x002\x000\x001\x006\x000\x009\x002\x003\x00\\\x00C\x00W\x0
    0C\x00C\x00S\x00e\x00t\x00u\x00p\x00.\x00e\x00x\x00e\x00-\x00-\x00-\x00S\x00i\x0
    0g\x00n\x00a\x00t\x00u\x00r\x00e\x00N\x00a\x00m\x00e\x00:\x00\r\x00\n'
    >>> chardet.detect(a)
    {'confidence': 1.0, 'encoding': 'UTF-16LE'}

    用python解析:

    # -*- coding: cp936 -*-
    
    import os
    import codecs
     
    def parseFile(filepath):
        try:
            lineList = [] # 存放每一行的内容
            with open(filepath, 'r') as fp:
                line = fp.read()
                if line.startswith('\xff\xfe'):
                    encoding = 'utf-16-le'
                    fp2 = codecs.open(filepath, 'r', encoding)
                    lineList = fp2.readlines()
                    fp2.stream.close()
            for i in lineList: # 打印每一行
                print i,
        except Exception,ex:
            print '[ERROR]--',ex
    
    if __name__ == '__main__':
        filepath = './Signature.txt'
        parseFile(filepath)
    

      

  • 相关阅读:
    scrapy高级操作
    scrapy多url爬取
    scrapy基础使用
    selenuim
    数据解析
    python字典转为对象,用"."方式访问对象属性
    python AES.MODE_ECB(128位) pkcs5padding 加密算法
    maven
    maven在idea中的配置
    idea使用技巧
  • 原文地址:https://www.cnblogs.com/jj1118/p/5900117.html
Copyright © 2011-2022 走看看