使用python将word的doc转换成docx的时候,需要借助libreoffice。下面来说说libreoffice的安装过程。
wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.1.3/rpm/x86_64/LibreOffice_6.1.3_Linux_x86-64_rpm.tar.gz
tar -xvf LibreOffice_6.1.3_Linux_x86-64_rpm.tar.gz
sudo yum install LibreOffice_6.1.3.2_Linux_x86-64_rpm/RPMS/*.rpm -y
wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.1.3/rpm/x86_64/LibreOffice_6.1.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
tar -xvf LibreOffice_6.1.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
sudo yum install LibreOffice_6.1.3.2_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm -y
sudo yum install libXinerama.x86_64 cups-libs dbus-glib ibus -y
如果有些依赖已经存在,就一个一个的装。像下面这样,我安装的时候主要缺下面两个依赖:
sudo yum install dbus-glib -y
sudo yum install ibus -y
soffice --help
如果提示soffice不存在,则添加映射。我的libreoffice6.1安装在/opt/libreoffice6.1/program/soffice这个目录下。
whereis libreoffice6.1
找到自己的安装目录,然后映射。
sudo ln -s /opt/libreoffice6.1/program/soffice /usr/bin/soffice
安装成功之后就可以将doc转换成docx
import subprocess
output = subprocess.check_output(["soffice","--headless","--invisible","--convert-to","docx","test.doc","--outdir","./"])
先安装docx包。
pip install python-docx
读取文本
import docx
def getText(filename):
doc = docx.Document(filename)
fullText = []
for i in doc.paragraphs:#迭代docx文档里面的每一个段落
fullText.append(i.text)#保存每一个段落的文本
return '\n'.join(fullText)
print(getText('test.docx'))