吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2300|回复: 12
收起左侧

[求助] 小白求助,如何利用python提取word中部分段落并另存?

  [复制链接]
woqunina 发表于 2022-1-14 23:32
本帖最后由 woqunina 于 2022-1-14 23:35 编辑

一个word中有3部分,我想把后面2部分提取出来,并且第3和2部分互换一下,保存成新的word,如下图,左侧是原word, 右侧为目标word。
}II357WEZSYY7QU{0OI%U.png
计划的思路:
调用python-docx,3部分用6个paragraph表示,按照输出5,6,3,4段的顺序输出,
from docx import Document
doc = Document('g:/python/0.docx')
P0 = doc.paragraphs[0]
P1 = doc.paragraphs[1]
P2 = doc.paragraphs[2]
P3 = doc.paragraphs[3]
P4 = doc.paragraphs[4]
P5 = doc.paragraphs[5]
print(P4.text)
print(P5.text)
print(P2.text)
print(P3.text)
doc.save('g:/python/11.docx')
运行的时候可以实现,但是保存的文件和原文件一样。
我应该怎么改,谢谢!!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

dutyzqly 发表于 2022-1-15 07:10
我不是很懂python,但我用看其他语言的方式来看你这代码,感觉有点问题
开始你用doc定义0.docx,然后你保存的时候还是保存的doc对象也就是0.docx
print这个命令不知道在python中是调试输出还是可以保存到对象中的?
也许你可以试试再定义一个docx1=11.docx,然后
doc1.paragraphs[1]=P4
doc1.paragraphs[2]=P5
doc1.paragraphs[3]=P2
doc1.paragraphs[4]=P3
这样子呢?
当然,我不太懂python,不知道能不能运行,以上仅供参考
AngryMuGuL 发表于 2022-1-15 10:40
pk8900 发表于 2022-1-15 11:08
本帖最后由 pk8900 于 2022-1-15 11:18 编辑

from docx import Document
doc = Document('g:/python/0.docx')
P0 = doc.paragraphs[0]
P1 = doc.paragraphs[1]
P2 = doc.paragraphs[2].text
P3 = doc.paragraphs[3].text
P4 = doc.paragraphs[4].text
P5 = doc.paragraphs[5].text
doc.paragraphs[1].text=‘’
doc.paragraphs[0].text=‘’
doc.paragraphs[4].text=P2
doc.paragraphs[5].text=P3
doc.paragraphs[2].text=P4
doc.paragraphs[3].text=P5
doc.save('g:/python/11.docx')
估计应该这样写,我没测试
cszdz999 发表于 2022-1-15 11:59
简单问题复杂化
wu_yang007 发表于 2022-1-15 12:21
初学只看过几节课 不知道对不对
但是看最后参数你用的.save  (应该是保存)  另存为你似似.SaveAs看看
YeLTYZ 发表于 2022-1-15 13:09
from docx import Document

#打开word文档
document = Document("0.docx")#原文件
#读取段落
all_p=document.paragraphs

#新建文档
doc1=Document()
doc1.add_paragraph(all_p[2].text)#添加段落,内容为0.docx的第三段
doc1.add_paragraph(all_p[1].text)#添加段落,内容为0.docx的第二段
doc1.save('writep.docx') #保存,文件名

下图是效果,这只是调内容,没有固定原格式,你可以自己丰富。
1.png

免费评分

参与人数 1热心值 +1 收起 理由
wu_yang007 + 1 新手学到了

查看全部评分

YeLTYZ 发表于 2022-1-15 13:16
你最后这句doc.save('g:/python/11.docx')
还是用的doc
这里的doc是你调用的原文件'g:/python/0.docx'
相当于你把'0.docx'又另存了一遍,并且文件名为11.docx,所以没有任何效果。
你得新建一个空文件。
print是打印,没有写入。
 楼主| woqunina 发表于 2022-1-15 19:33
YeLTYZ 发表于 2022-1-15 13:09
from docx import Document

#打开word文档

非常感谢,有注释看懂了
 楼主| woqunina 发表于 2022-1-15 19:33
dutyzqly 发表于 2022-1-15 07:10
我不是很懂python,但我用看其他语言的方式来看你这代码,感觉有点问题
开始你用doc定义0.docx,然后你保 ...

非常感谢!分析的有道理
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表