获取word文件信息

Posted victor-zh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取word文件信息相关的知识,希望对你有一定的参考价值。

读取doc,docx文件

  1. 使用office,wps工具打开文件另存为

  2. 针对doc文件,antiword 提取doc文件信息

    2.1 安装
    • windows

      1、 下载zip包 地址:http://www.winfield.demon.nl/
      2、 解压至指定目录,配置系统环境变量path
      3、 使用antiword命令行操作doc文件
    • Linux

      1、 wget http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz
      2、 tar -zxvf antiword-0.37.tar.gz
      3、 cd antiword-0.37
      4、 make && make install
    2.2 使用说明
    • antiword -t xxx.doc 输出文件信息
    • antiword -f xxx.doc 格式化输出文件信息
    • antiword -f xxx.doc >> xxx.txt 读取doc文件信息并保存为txt文件
  3. 针对docx文件,使用python-docx包
    • pip install python-docx
    def trans_docx_txt(path):
        '''
        fun: docx 文件转txt文件
        '''
        newpath = "".join(path.split(".")[:-1]) + ".txt"
        # 保存的文件如果存在需要先删除
        if os.path.exists(newpath):
            os.remove(newpath)
        # 空文件不处理
        if os.path.getsize(path) == 0:
            return
    
        file = docx.Document(path)
        # 读取段落
        for paragraph in file.paragraphs:
            if paragraph.text:
                with open(newpath, "a+", encoding="utf-8") as file:
                    file.write(paragraph.text + "
    ")
    
        file = docx.Document(path)
        # 如果存在表格,读取表中单元格信息
        if file.tables:
            for table in file.tables:
                row_count = len(table.rows)
                colu_count = len(table.columns)
                for i in range(row_count):
                    for j in range(colu_count):
                        with open(newpath, "a+", encoding="utf-8") as file:
                            file.write(table.cell(i, j).text + "
    ")

以上是关于获取word文件信息的主要内容,如果未能解决你的问题,请参考以下文章

Word 文档的优秀代码片段工具或插件?

错误记录Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )(代码片段

如何在 MS Word 文档中显示代码片段,因为它在 *** 中显示(滚动条和灰色背景)

C#创建Word文件 - 打开文件时出错

如何获取 .mp4 视频文件的 Dash 片段

获取有关 git word-diff 合并行的信息