linux系统中将doc文件转换为docx文件

依赖

读取Excel文件

import openpyxl

#加载excel文件
workbook = openpyxl.load_workbook('未命名 1.xlsx', read_only=False)
#获取指定sheet
sheet = workbook.get_sheet_by_name('Sheet1')
#表格最后一行的下标
max_row = sheet.max_row
#遍历表格每一行,因为有标题行所以从第二行开始
for row_index in range(2,max_row + 1):
  cell = sheet.cell(row_index,1)
  #读取A列的数据
  print(cell.text)
  #写入数据到B列
  sheet['B{}'.format(row_index)] = 'test'
#保存文档
workbook.save('output.xlsx')

读取Word文件

*注意:Python-docx只支持操作.docx文件,如果需要操作.doc文件则需要将其转换格式后才能使用该类库操作

import docx

#打开docx文档
doc = docx.Document(you_file_path)
#获取文档里的段落文本
print(doc.paragraphs[0].text)
table = doc.tables[0]
#获取表格中的内容,cell(行,列)
print(table.cell(1,2).text)

doc文件类型转换为docx

  1. 安装libreoffice
yum install libreoffice
  1. 测试运行
soffice --headless --invisible --convert-to docx /path/test.doc
  1. 利用bash批处理文件
#!/bin/bash

# 检查libreoffice是否已安装
if ! command -v libreoffice &> /dev/null
then
    echo "没有安装LibreOffice,请安装后重试."
    exit
fi

# 检查输入参数
if [ -z "$1" ] || [ -z "$2" ]
then
    echo "请指定源目录与结果输出目录参数"
    exit
fi

# 查找源目录与其子目录中所有的.doc文件
find "$1" -type f -name '*.doc' | while read file
do
    echo "转换文档"
    # 转换文档格式为docx
    libreoffice --headless --convert-to docx "$file" --outdir "$2"
done

find "$1" -type f -name '*.docx' | while read file

echo "转换完成."

把上面代码拷贝保存到convert-doc-to-docx.sh文件中,然后使用bash执行该文件,并指定源目录路径与输出路径为参数

bash convert-doc-to-docx.sh /source/directory /output/directory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值