解决python⼤批量读写.doc⽂件的问题
前⾔:
java语⾔读写.doc的出现乱码问题:
⼤家都知道当我们利⽤java语⾔读写.doc⽂件时,⽆论是利⽤流的⽅式将.doc⽂件的内容输出到控制台(console),还是将其写到其他⽂件中,⽆论你采取何种编码格式(utf-8,gbk等)输出,你看到的内容99%都是乱码。
java语⾔读写.doc的出现乱码问题原因分析:
.doc⽂件是微软开发的⽤于办公的编辑⽂字的软件之⼀,如果说⼀篇word⽂档的字体格式采⽤的是utf-8,那么你采⽤utf-8格式读写该⽂档,应该能够正确输出汉字,但是⼀旦你的word⽂档⾥⾯的字体的尺⼨改变,字体加上颜⾊属性,字体加上某种style时,那么本篇word⽂档的格式就变了,⽽不再是utf-8,因此采⽤utf-8格式输出99%都是乱码。
利⽤java语⾔读写.doc⽂档避免乱码的解决⽅案:(sun公司pk微软公司)
可以利⽤sun公司开发的poi包,该包提供修改微软办公软件的接⼝,利⽤poi包读写.doc⽂件,通常就不
会产⽣乱码。如果看到这⾥你就⼤概认为,我终于可以利⽤java 去处理.doc⽂件了,那么我想说的是,你开⼼的太早了。据我所知,截⽌到2017年12⽉22⽇,poi包的最新版本是3.1.7版,你也许对该版本没有什么概念,3.1.7版本的poi包只能处理微软2007版本的word,excel,ppt等,也就是说poi3.1.7版本的jar包不⽀持处理咱们电脑上顶配的word2016,因此可以说你可以放弃使⽤java读写
word2016了。但是你也可以尝试⽤其他的接⼝去处理word,但是效率都不会⽐poi接⼝⾼,幸运的是,官⽹显⽰poi最新版本将在2017年12⽉份推出,但是截⽌到2017年12⽉22⽇,我还没有在官⽹看到此jar包。
正⽂:
python在处理⽂档的语⾔处理⽅⾯⽐java更胜⼀筹,毕竟python结合正则表达式在⾃然语⾔处理⽅⾯还是很强势的。最近在做深度学习的项⽬,需要解析并处理⼏百个数量级的.doc⽂件。众所周知,python读写.txt⽂档可以说⼀路畅通⽆阻,不管你中⽂是什么格式;python在读写.docx⽂档时,也⽐较畅通,最多你需要在命令⾏安装python-docx (0.8.6),就可以读写.docx⽂档了,具体读写⽅案,下述。
问题:python⽆法读取.doc⽂件(⽽不是.docx⽂件)
解决⽅案:利⽤python将⼤批.doc⽂件转化为.docx⽂件,再读写.docx⽂件python中文文档
问题分析:python利⽤python-docx (0.8.6)库可以读取.docx⽂件或.txt⽂件,且⼀路畅通⽆阻,⽽对.doc⽂件本⾝python是⽆能为⼒的,那有很多同学就不服⽓,我⼿动把.doc⽂件的后缀名改为.docx或.txt不就解决问题了吗?答案是不能的,简单修改后缀名,那么⽂件就被你玩坏了,别说打不开,就是打开也是天书啊(乱码)。python⽆法操作.doc⽂件是他的先天不⾜,但是我们不要钻⽜⾓尖⼀定要在互联⽹上到⼀种源码直接读取.doc⽂件,⼀调⽤就好了,但是不幸的是,你可能在⽹上也不到解决⽅案。正当我⼀筹莫展之时,我将.doc⽂档利⽤⼿动的⽅式“另存为”.docx⽂档,就能够成功打开转化后的.docx⽂档,于是我就尝试利⽤代码⽅式完成这个⼿动的“另存为”功能,问题得以解决。
直接上python代码(⾸先你需要先安装pypewin32库):
# -*- coding: utf-8 -*-:
import sys
import pickle
import re
import codecs
import string
import shutil
from win32com import client as wc
def doSaveAas(): # 想批处理⽂件,你就⽤for循环呗,我⼀次性处理了100多个⽂件,代码执⾏不超过2分钟,可以解决问题,⽬标⽂件路径可以⾃由改动,⼤家注意SaveAs⽅法中的参数,好多啊,别写错了word = wc.Dispatch('Word.Application')
doc = word.Documents.Open(u'C:\\Users\\X\\PycharmProjects\\1\\⼤家好.doc') # ⽬标路径下的⽂件
doc.SaveAs(u'C:\\Users\\X\\PycharmProjects\\1\\我是⼀枚⼩⼩的程序员X007.docx', 12, False, "", True, "", False, False, False, False) # 转化后路径下的⽂件
doc.Close()
word.Quit()
转化为.docx⽂件后,在处理.docx⽂件,⼀路畅通⽆阻,⽹上很多解决⽅案,这⾥我就不详细说了,有问题,可以给我留⾔哟
以上这篇解决python⼤批量读写.doc⽂件的问题就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论