python在windows与linux下读取doc文件

python在windows与linux下读取doc文件

前言
记录一下自己走的弯路,能帮助大家少走一点弯路。读取doc文件流程,基本上都是将doc文件转为docx文件或者pdf文件进行读取。下面主要介绍将doc文件转化为docx文件进行读取

一、python在windows读取doc文件
这个网上很多,主要通过win32com库,将doc文件转为docx,本文主要是提取word文件里面的图片,提取内容也大同小异。下面上代码。

import os
import shutil
import zipfile
from win32com import client
# doc转docx
def doc2docx(doc_name, docx_name):
    try:
        # 首先将doc转换成docx
        word = client.Dispatch("Word.Application")
        doc = word.Documents.Open(doc_name)
        # 使用参数16表示将doc转换成docx
        doc.SaveAs(docx_name, 16)
        doc.Close()
        word.Quit()
    except:
        pass
    '''
    :param path:源文件
    :param zip_path:docx重命名为zip
    :param tmp_path:中转图片文件夹
    :param store_path:最后保存结果的文件夹(需要手动创建)
    :return:
    '''
def word2pic(path, tmp_path, store_path):
    # 将docx文件重命名为zip文件
    #os.rename(path, zip_path)
    # 进行解压
    f = zipfile.ZipFile(path, 'r')
    # 将图片提取并保存
    for file in f.namelist():
        f.extract(file, tmp_path)
    # 释放该zip文件
    f.close()
    # 将docx文件从zip还原为docx
    #os.rename(zip_path, path)
    # 得到缓存文件夹中图片列表
    pic = os.listdir(os.path.join(tmp_path, 'word/media'))
    # 将图片复制到最终的文件夹中
    for i in pic:
        # 根据word的路径生成图片的名称
        shutil.copy(os.path.join(tmp_path + '/word/media', i), os.path.join(store_path, i))
    # 删除缓冲文件夹中的文件,用以存储下一次的文件
    for i in os.listdir(tmp_path):
        # 如果是文件夹则删除
        if os.path.isdir(os.path.join(tmp_path, i)):
            shutil.rmtree(os.path.join(tmp_path, i))

二、Linux下读取doc文件,通过libreoffice将doc文件转为docx文件,安装libreoffice,可以参考一下这个篇[安装libreoffice]

import os
import shutil
import zipfile
import subprocess
 
   # doc转docx
def doc2docx(docPath, docxPath):
    cmd = '/bin/libreoffice6.1 --headless --convert-to docx'.split() + [docPath] + ['--outdir'] + [docxPath]
    p = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
    p.wait(timeout=30)
    stdout, stderr = p.communicate()
    if stderr:
        raise subprocess.SubprocessError(stderr)
	
    '''
    :param path:源文件
    :param zip_path:docx重命名为zip
    :param tmp_path:中转图片文件夹
    :param store_path:最后保存结果的文件夹(需要手动创建)
    :return:
    '''
def word2pic(down_file,pic_path,file_to_pic):
    tmp_path = '{}{}'.format(pic_path, '/temp')
    # 将docx文件重命名为zip文件
    #os.rename(path, zip_path)
    # 进行解压
    f = zipfile.ZipFile(down_file, 'r')
    # 将图片提取并保存
    for file in f.namelist():
        f.extract(file, tmp_path)
    # 释放该zip文件
    f.close()
    if os.path.isdir(os.path.join(tmp_path, 'word/media')):
        # 得到缓存文件夹中图片列表
        pic = os.listdir(os.path.join(tmp_path, 'word/media'))
        # 将图片复制到最终的文件夹中
        for i in pic:
            # 根据word的路径生成图片的名称
            shutil.copy(os.path.join(tmp_path + '/word/media', i), os.path.join(file_to_pic, i))
        # 删除缓冲文件夹中的文件,用以存储下一次的文件
        for i in os.listdir(tmp_path):
            # 如果是文件夹则删除
            if os.path.isdir(os.path.join(tmp_path, i)):
                shutil.rmtree(os.path.join(tmp_path, i))
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python可以在WindowsLinux环境下运行。在Windows环境下,可以通过安装Python的可执行文件来安装Python,也可以通过Anaconda等Python发行版来安装。在Linux环境下,Python通常已经预装在系统中,也可以通过包管理器来安装。无论在哪种环境下,Python都是一种跨平台的编程语言,可以在不同的操作系统上运行。 ### 回答2: Python是一种跨平台的编程语言,可以在WindowsLinux环境下运行。 对于Windows环境,Python提供了可执行的安装程序,用户可以直接下载并安装Python解释器。Windows操作系统一般使用图形界面,Python提供了丰富的图形界面库,如Tkinter,可以用于开发Windows应用程序。此外,Windows还提供了一些诸如COM、Win32 API等特定于平台的功能,Python也提供了对这些功能的支持,使得开发者可以在Windows环境下更方便地与系统进行交互。 在Linux环境下,Python通常已经预装在系统中,用户无需额外安装。Linux操作系统具有强大的终端和命令行工具,Python提供了丰富的标准库,可以直接使用命令行来执行Python脚本。此外,Linux还提供了丰富的开发工具和系统接口,Python提供了对这些工具和接口的支持,使得开发者可以更好地进行系统编程、网络编程等。 无论是在Windows还是Linux环境下,Python都具有高度的可移植性,开发者可以在不同的平台上进行开发,而无需修改或适配代码。这使得Python成为了一种非常灵活和便捷的编程语言,能够适应不同的操作系统和开发需求。所以,无论是在Windows还是Linux环境下,Python都是一种非常流行和广泛应用的编程语言。 ### 回答3: Python是一种跨平台的高级编程语言,可以在WindowsLinux等操作系统上运行。它在这两个环境中都有广泛的应用。 在Windows环境下,Python提供了一个易于安装和使用的集成开发环境(IDE),比如PyCharm、Anaconda等。这些IDE提供了一个友好的界面和许多实用的功能,使得开发者可以更加方便地编写、调试和运行Python程序。此外,Python还提供了一些专门为Windows开发的库和模块,如pywin32,用于实现与Windows系统交互的功能。 在Linux环境下,Python通常已经默认安装在大多数发行版中,开发者可以直接在终端中输入python命令来执行Python代码。Linux环境对于Python的支持更加全面,因为一些重要的系统工具和脚本都是用Python编写的,比如系统配置工具和自动化脚本等。此外,在Linux环境下,Python还能够更好地与其他开源工具和库进行集成,如使用Python编写Shell脚本、搭建Web服务器、进行数据分析等。 虽然Python可以在WindowsLinux环境下运行,但在具体应用中还是存在一些细微的差异。比如,在文件路径的表示上,Windows使用反斜杠(\),而Linux使用斜杠(/)。另外,对于一些底层操作系统相关的功能,比如进程管理和文件权限等,在WindowsLinux之间也存在一些差异。 总体而言,PythonWindowsLinux环境下都能够提供强大的编程能力和丰富的生态系统,开发者可以根据自己的需求和偏好选择合适的操作系统来进行Python开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值