您的位置:首页 > 编程语言 > Python开发

Python合并多个UTF-16格式txt文件

2016-06-02 19:26 806 查看
最近喜欢上了Python脚本,确实方便。因为需要考试,而备考材料是个被制作成了SWF格式的Word文件,于是我用 Flash Decompiler Trillix intro反编译(该软件做的不是很好,若是针对特定文件类型进行反编译效果会更好)后得到100多个零碎的txt,每个txt就才几段话,我就打算用Python合并为一个txt。

源代码(Python2.7):

# -*- coding: cp936 -*-
#!/usr/bin/env python
import os
import codecs

#小文件的目录
path = "c:\pTest\Texts"

#最终文件
goal = codecs.open('all.txt','w','utf-8')

for root,dirs,files in os.walk(path):
#print("files: ", files)
for name in files:
#原文件是utf16,不加会乱码
eachfile = codecs.open(path+'\\'+name,'r', 'utf-16_le')
#print eachfile
while True:
s = eachfile.read(16*1024)
if not s:
break
goal.write(s)
eachfile.close()
goal.close()


遇到的问题

合并后的文件打开一看,出现乱码。然后我用 Sublime Text 打开那些小txt一看,居然是 UTF-16 LE with BOM,怪不得乱码。然后参考下面的参考文章,使用Python的编码格式转换库 codecs 来打开指定编码格式的文件,这样就没有出错了。

打开文件需要指定 utf-16-le 格式,被写入的文件也需要指定打开格式 utf-8,否则在Windows 系统中,因为被写入文件 all.txt 默认是 ASCII 格式编码不能支持 汉字而报错。

貌似Python 对编码格式 字符串
utf-16_le
还是
utf_16_le
没有严格限制。

参考

文件编码格式:Python的codecs模块

python读取Unicode和ANSI编码的文件 代码

遍历目录读写文件:python 多个txt文件合并成一个txt文件

其他

待写 Python 关闭当前指定标题的窗口程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 合并