python - 当我在 python 中保存 docx 文件时,数据被损坏
问题描述
我可以毫无问题地编辑和保存 txt,但是当我保存 docx 文件时,数据会损坏。喜欢这里的图片:错误图片有什么建议可以正确保存 docx 吗?谢谢。
def save(self,MainWindow):
if self.docURL == "" or self.docURL.split(".")[-1] == "txt":
text = self.textEdit_3.toPlainText()
file = open(self.docURL[:-4]+"_EDITED.txt","w+")
file.write(text)
file.close()
elif self.docURL == "" or self.docURL.split(".")[-1] == "docx":
text = self.textEdit_3.toPlainText()
file = open(self.docURL[:-4] + "_EDITED.docx", "w+")
file.write(text)
file.close()
解决方案
.docx
文件不仅仅是文本 - 它们实际上是具有非常特定格式的 XML 文件的集合。要轻松读/写它们,您需要该python-docx
模块。要调整您的代码:
from docx import Document
...
elif self.docURL == "" or self.docURL.split(".")[-1] == "docx":
text = self.textEdit_3.toPlainText()
doc = Document()
paragraph = doc.add_paragraph(text)
doc.save(self.docURL[:-4] + "_EDITED.docx"
一切就绪。您可以在文本格式、插入图像和形状、创建表格等方面做更多的事情,但这会让您继续前进。我链接到上面的文档。
推荐阅读
- c# - 如何在 C# 的远点传播中使用 keydown 或 keypress 事件捕获多个按下的键?
- javascript - 正则表达式用反斜杠+逗号替换逗号 - JavaScript
- docusignapi - 如何代表单个用户使用 DocuSign,但带有动态重定向签名仪式?
- node.js - 无法在 NestJs 服务上创建 Jest 测试模块。获取 Nest 无法解析 UsersService (?, ConfigService) 的依赖关系
- c++ - c1xx.dll 和 c2.dll 在 Visual Studio 编译过程中的“职责”是什么?
- google-cloud-firestore - 多 Firestore 数据库
- php - 日期差异明天日期
- php - 选中另一个复选框时如何取消选中复选框?
- javascript - 如何在 nodejs (tensorflow.js) 中训练模型?
- angular - 如何从一组可观察对象中捕获所有不同的响应?