linux系统下使用python批量将doc文件转为docx文件

         Python相关工具要么无法处理.doc(只能处理.docx),要么要求必须在windows环境下使用(如win32com)。当前大家的生产环境一般都是Linux环境,更换win服务器会造成一系列的连带问题,比如其他库是否兼容等等,非常麻烦,所以找到.doc/.wps在Linux下的处理方式非常重要。还好,最后被我找到了,那就是LibreOffice。

LibreOffice 命令行基本用法:

libreoffice --headless --convert-to <目标格式> <输入文件路径>

 指定输出文件名:

libreoffice --headless --convert-to pdf --outdir /path/to/output output_filename.pdf input.docx

我的doc文件位于2022年这个文件夹下

import os
import subprocess

from docx import Document

doc_files = [file for file in os.listdir('./2022年') if file.endswith('.doc')]
work_dir = os.getcwd()
target_format = "docx"
outdir_path = os.path.join(work_dir, '2022年')

for doc_file in doc_files:
    doc_path = os.path.join('./2022年', doc_file)
    doc_path = os.path.abspath(doc_path)
    # doc = Document(doc_path)
    output_name = doc_path.rsplit('.')[0]
    # output_path = os.path.join(work_dir, f"{output_name}.{target_format}")
    output_path =  f"{output_name}.{target_format}"
    command = f"libreoffice --headless --convert-to {target_format} --outdir {outdir_path} {doc_path}"

    subprocess.run(command, shell=True)

    # docx_file = doc_file.replace('.doc', '.docx')
    # docx_path = os.path.abspath(docx_file)
    # doc.save(docx_path)

    print(f'{doc_file} 转化为 {output_path} 成功')


# os.system("libreoffice --headless --convert-to docx ")

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值