大家都知道当我们利用java语言读写. doc文件时,无论是利用流的方式将. doc文件的内容输出到控制台(控制台),还是将其写到其他文件中,无论你采取何种编码格式(utf - 8, gbk等)输出,你看到的内容99%都是乱码。
. doc文件是微软开发的用于办公的编辑文字的软件之一,如果说一篇词文档的字体格式采用的是utf - 8,那么你采用utf - 8格式读写该文档,应该能够正确输出汉字,但是一旦你的词文档里面的字体的尺寸改变,字体加上颜色属性,字体加上某种风格时,那么本篇词文档的格式就变了,而不再是utf - 8,因此采用utf - 8格式输出99%都是乱码。
可以利用太阳公司开发的芋泥包,该包提供修改微软办公软件的接口,利用芋泥包读写. doc文件,通常就不会产生乱码。如果看到这里你就大概认为,我终于可以利用java去处理. doc文件了,那么我想说的是,你开心的太早了。据我所知,截止到2017年12月22日,芋泥包的最新版本是3.1.7版,你也许对该版本没有什么概念,3.1.7版本的poi包只能处理微软版2007本的单词,excel, ppt等,也就是说poi3.1.7版本的jar包不支持处理咱们电脑上顶配的word2016,因此可以说你可以放弃使用java读写word2016了。但是你也可以尝试用其他的接口去处理字,但是效率都不会比poi接口高,幸运的是,官网显示poi最新版本将在2017年12月份推出,但是截止到2017年12月22日,我还没有在官网看到此jar包。
python在处理文档的语言处理方面比java更胜一筹,毕竟python结合正则表达式在自然语言处理方面还是很强势的。最近在做深度学习的项目,需要解析并处理几百个数量级的. doc文件。众所周知,python读写. txt文档可以说一路畅通无阻,不管你中文是什么格式;python在读写。多克斯文档时,也比较畅通,最多你需要在命令行安装python-docx(0.8.6),就可以读写docx文档了,具体读写方案,下述。
问题分析:python利用python-docx(0.8.6)库可以读取docx文件或. txt文件,且一路畅通无阻,而对doc文件本身python是无能为力的,那有很多同学就不服气,我手动把. doc文件的后缀名改为docx或. txt不就解决问题了吗?答案是不能的,简单修改后缀名,那么文件就被你玩坏了,别说打不开,就是打开也是天书啊(乱码).python无法操作. doc文件是他的先天不足,但是我们不要钻牛角尖一定要在互联网上找到一种源码直接读取. doc文件,一调用就好了,但是不幸的是,你可能在网上也找不到解决方案。正当我一筹莫展之时,我将. doc文档利用手动的方式“另存为”。docx文档,就能够成功打开转化后的docx文档,于是我就尝试利用代码方式完成这个手动的“另存为”功能,问题得以解决。
utf - 8 # - * -编码:- *: 导入系统 进口泡菜 进口再保险 进口编解码器 进口的字符串 进口shutil 从win32com进口端为wc
def doSaveAas(): #想批处理文件,你就用的循环呗,我一次性处理了100多个文件,代码执行不超过2分钟,可以解决问题,目标文件路径可以自由改动,大家注意SaveAs方法中的参数,好多啊,别写错了
词=wc.Dispatch (“Word.Application”) 医生=word.Documents.Open (u 'C: \ \ \ \ * \ \用户PycharmProjects \ \ 1 \ \大家好. doc”) #目标路径下的文件 doc.SaveAs (u 'C: \ \ \ \ * \ \用户PycharmProjects \ \ 1 \ \我是一枚小小的程序员X007。虚假多克斯”,12日,“”,的确,“”,假的,假的,假的,假的)#转化后路径下的文件 doc.Close () word.Quit ()
转化为docx文件后,在处理docx文件,一路畅通无阻,网上很多解决方案,这里我就不详细说了,有问题,可以给我留言哟
以上这篇解决python大批量读写. doc文件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。