将doc文件转为txt文件

问,将大象放进冰箱需要几步?

啊呸,串场了。将doc文件转为txt文件需要几步?

答:需要两步,

1.先将doc转为docx。因为python-docx只能处理docx的文件,而无法处理doc文档。docx本质是xml文件比doc更小些。这里需要的包为win32com,如果没有,则pip即可。

import os
from win32com import client as wc
from docx import Document
from tqdm import tqdm
def doc2docx(origin_path, goal_path):
    """
    将doc转为docx
    """
    word = wc.Dispatch("Word.Application")
    # 不能用相对路径,用绝对路径
    # 需要处理的文件所在文件夹目录
    for i in os.listdir(origin_path):
        # 找出文件中以.doc结尾并且不以~$开头的文件(~$是为了排除临时文件的)
        if i.endswith('.doc') and not i.startswith('~$'):
            print(i)
            doc_path = os.path.join(origin_path, i)
            doc = word.Documents.Open(doc_path)
            # 将文件名与后缀分割
            rename = os.path.splitext(i)
            # 将文件另存为.docx
            save_path = os.path.join(goal_path, rename[0] + '.docx')
            doc.SaveAs(save_path, 12)  # 12表示docx格式
            doc.Close()
    word.Quit()

2.将docx转为txt文本。这些需要python-docx,如果没有则pip就好。

import os
from win32com import client as wc
from docx import Document
from tqdm import tqdm
def docx2txt(path):
    """
    将docx转为txt
    """
    txt_count = 1
    for i in os.listdir(path):
        if i.endswith('.docx') and not i.startswith('~$'):
            file_path = os.path.join(path, i)
            document = Document(file_path)
            txt_path = os.path.join(path, str(txt_count)+'.txt')
            f = open(txt_path, 'w', encoding='utf-8')
            for paragraph in tqdm(document.paragraphs):
                f.write(paragraph.text.strip()+'\n')
            f.close()
            txt_count += 1

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值