python读取UCS-2 little endian(utf-16-le) 格式的文件- 仙羡1118
文章推薦指數: 80 %
今天开发帮忙写了一个读取windows文件签名的小程序,并把签名信息写到txt文件中,用UE打开发现居然是UCS-2 LE编码,几经查找,如下是读取的文本。
首页
新闻
博问
专区
闪存
班级
我的博客
我的园子
账号设置
简洁模式...
退出登录
注册
登录
deepwater
python读取UCS-2littleendian(utf-16-le)格式的文件
今天开发帮忙写了一个读取windows文件签名的小程序,并把签名信息写到txt文件中,用UE打开发现居然是UCS-2LE编码,几经查找,如下是读取的文本。
>>>a'\xff\xfe.\x00/\x00\\\x002\x000\x001\x006\x000\x009\x002\x003\x00\\\x00C\x00W\x00C\x00C\x00S\x00e\x00t\x00u\x00p\x00.\x00e\x00x\x00e\x00-\x00-\x00-\x00S\x00i\x00g\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-*-
importos
importcodecs
defparseFile(filepath):
try:
lineList=[]#存放每一行的内容
withopen(filepath,'r')asfp:
line=fp.read()
ifline.startswith('\xff\xfe'):
encoding='utf-16-le'
fp2=codecs.open(filepath,'r',encoding)
lineList=fp2.readlines()
fp2.stream.close()
foriinlineList:#打印每一行
printi,
exceptException,ex:
print'[ERROR]--',ex
if__name__=='__main__':
filepath='./Signature.txt'
parseFile(filepath)
posted@
2016-09-2315:13
仙羡1118
阅读(7027)
评论(0)
编辑
收藏
举报
刷新评论刷新页面返回顶部
Copyright©2022仙羡1118
Poweredby.NET6onKubernetes
延伸文章資訊
- 1UCS-2 LE BOM python pandas - CSDN博客
- 2Python 3: reading UCS-2 (BE) file - Stack Overflow
Open it with encoding='utf16' . If there is no BOM (the Byte order mark, 2 bytes at the start, fo...
- 3Python write lines to a UCS-2 LE BOM encoded text file
Try writing an explicit BOM: with open(textpath, "w", encoding='utf-16-le') as f: f.write('\ufeff...
- 4Why Python 3 doesn't write the Unicode BOM - Peter Bloomfield
- 5將UCS-2 Little Endian(即utf-16)編碼的txt檔案批量轉化為utf-8 ...
折騰了好久,終於搞定了。 參考連結:python使用codecs模組進行檔案操作-讀寫中英文字元- CSDN部落格http://blog.csdn.net ...