小白求助,如何利用python提取word中部分段落并另存?
本帖最后由 woqunina 于 2022-1-14 23:35 编辑一个word中有3部分,我想把后面2部分提取出来,并且第3和2部分互换一下,保存成新的word,如下图,左侧是原word, 右侧为目标word。
计划的思路:
调用python-docx,3部分用6个paragraph表示,按照输出5,6,3,4段的顺序输出,
from docx import Document
doc = Document('g:/python/0.docx')
P0 = doc.paragraphs
P1 = doc.paragraphs
P2 = doc.paragraphs
P3 = doc.paragraphs
P4 = doc.paragraphs
P5 = doc.paragraphs
print(P4.text)
print(P5.text)
print(P2.text)
print(P3.text)
doc.save('g:/python/11.docx')
运行的时候可以实现,但是保存的文件和原文件一样。
我应该怎么改,谢谢!!
我不是很懂python,但我用看其他语言的方式来看你这代码,感觉有点问题
开始你用doc定义0.docx,然后你保存的时候还是保存的doc对象也就是0.docx
print这个命令不知道在python中是调试输出还是可以保存到对象中的?
也许你可以试试再定义一个docx1=11.docx,然后
doc1.paragraphs=P4
doc1.paragraphs=P5
doc1.paragraphs=P2
doc1.paragraphs=P3
这样子呢?
当然,我不太懂python,不知道能不能运行,以上仅供参考 同求,也在学python 本帖最后由 pk8900 于 2022-1-15 11:18 编辑
from docx import Document
doc = Document('g:/python/0.docx')
P0 = doc.paragraphs
P1 = doc.paragraphs
P2 = doc.paragraphs.text
P3 = doc.paragraphs.text
P4 = doc.paragraphs.text
P5 = doc.paragraphs.text
doc.paragraphs.text=‘’
doc.paragraphs.text=‘’
doc.paragraphs.text=P2
doc.paragraphs.text=P3
doc.paragraphs.text=P4
doc.paragraphs.text=P5
doc.save('g:/python/11.docx')
估计应该这样写,我没测试 简单问题复杂化 初学只看过几节课 不知道对不对
但是看最后参数你用的.save(应该是保存)另存为你似似.SaveAs看看 from docx import Document
#打开word文档
document = Document("0.docx")#原文件
#读取段落
all_p=document.paragraphs
#新建文档
doc1=Document()
doc1.add_paragraph(all_p.text)#添加段落,内容为0.docx的第三段
doc1.add_paragraph(all_p.text)#添加段落,内容为0.docx的第二段
doc1.save('writep.docx') #保存,文件名
下图是效果,这只是调内容,没有固定原格式,你可以自己丰富。
你最后这句doc.save('g:/python/11.docx')
还是用的doc
这里的doc是你调用的原文件'g:/python/0.docx'
相当于你把'0.docx'又另存了一遍,并且文件名为11.docx,所以没有任何效果。
你得新建一个空文件。
print是打印,没有写入。 YeLTYZ 发表于 2022-1-15 13:09
from docx import Document
#打开word文档
非常感谢,有注释看懂了{:301_1003:} dutyzqly 发表于 2022-1-15 07:10
我不是很懂python,但我用看其他语言的方式来看你这代码,感觉有点问题
开始你用doc定义0.docx,然后你保 ...
非常感谢!分析的有道理
页:
[1]
2