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
延伸文章資訊
- 1Why Python 3 doesn't write the Unicode BOM - Peter Bloomfield
This post outlines when and why Python doesn't output the BOM, ... You'll see UTF-16 (or UCS-2) L...
- 2Python 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...
- 3What is UCS-2 Character Encoding? - Twilio
- 4Why Python 3 doesn't write the Unicode BOM - Peter Bloomfield
- 5UCS-2 LE BOM python pandas_Eddiewzw的博客-程序员宅基地
利用python修改json文件的value方法做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形。为此写了修改json文件的python脚本供工程后续调用。