python + word

实践 将多个文本合并为一个文本

思路

首先运用os模块获得多个文本的名称。然后,运用相关包读取这些文件,并汇集在一起。

运用函数安装包:os

合并word文件

将多份在百度网盘中的word文件,合并在一起。代码如下:

import docx
import os

wfile=open("result.txt","w",encoding="utf-8")

os.chdir("E:\eng")
subList=os.listdir(os.getcwd())#总的eng文件夹。
for inum in subList:
    os.chdir(f"E:\eng\{inum}")#eng文件夹中的子文件夹。
    inumList=os.listdir(os.getcwd())
    for idocx in inumList:
        print(f"文章{idocx}",file=wfile)
        ifile=docx.Document(f"{idocx}")
        for p in ifile.paragraphs:
            line=p.text
            print(line,file=wfile)
        print("\n",file=wfile)

wfile.close()

解析如下:

第一步,将百度网盘中的文件下载在电脑上(以下载后的eng文件夹为例,eng文件夹中包含很多子文件夹),和程序文件放在一起(以test.py为例)。

import os

os.chdir("E:\eng")
subList=os.listdir(os.getcwd())#总的eng文件夹。
for inum in subList:
    os.chdir(f"E:\eng\{inum}")#eng文件夹中的子文件夹。
    inumList=os.listdir(os.getcwd())
    print(inumList)

第二步,打开程序包docx,如果没有安装,就用pip安装

pip install python-docx

然后会显示安装成功。

第三步,调用docx包去读取docx文件。

for inum in subList:
    os.chdir(f"E:\eng\{inum}")#eng文件夹中的子文件夹。
    inumList=os.listdir(os.getcwd())
    for idocx in inumList:
        print(f"文章{idocx}",file=wfile)#便于区分各个文件

        ifile=docx.Document(f"{idocx}")#使用docx包读取文件
        for p in ifile.paragraphs:
            line=p.text
            print(line,file=wfile)#把文件输入wfile文档中
        print("\n",file=wfile)

第四步,最后把生成的txt文本,复制粘贴到docx文本中,就可以完成。

当然,可以将代码进一步优化。比如,用docx包生成word,而不是生成txt。如下:

import docx
import os

from docx import Document#创建document对象,即打开一个word 文档
mydocument=Document()
myp=mydocument.add_paragraph(" ")

os.chdir("E:\eng")
subList=os.listdir(os.getcwd())#总的eng文件夹。
for inum in subList:
    os.chdir(f"E:\eng\{inum}")#eng文件夹中的子文件夹。
    inumList=os.listdir(os.getcwd())
    for idocx in inumList:
        mydocument.add_heading(f"文章{idocx}",level=0)
        ifile=docx.Document(f"{idocx}")#使用docx包读取文件
        for p in ifile.paragraphs:
            line=p.text
            myp.add_run(line)#把段落添加入文件
        myp.add_run("\n")

mydocument.save("resulteng.docx")

但是在实践过程中,这段代码没有成功。优化功能没有实现。之后需要补充docx包相关的知识,然后去解决这个问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值