开发者社区> 问答> 正文

如果找不到使用python并写入文件,我怎么能创建一个单词(.docx)文件?

如果找不到使用python并写入文件,我怎么能创建一个单词(.docx)文件?注意:

我需要通过python创建一个自动报告,包括文本和饼图,图表等。

展开
收起
一码平川MACHEL 2019-01-18 11:19:45 2335 0
2 条回答
写回答
取消 提交回答
  • image.png

    用io防止乱码。

    2019-11-22 14:11:10
    赞同 展开评论 打赏
  • 打开新文件进行写入的最安全的方法可能是使用'xb'模式。如果文件已经存在,'x'则会引发一个FileExistsError。'b'是必要的,因为word文档基本上是一个二进制文件:它是一个包含XML和其他文件的zip存档。如果通过字符编码转换字节,则无法压缩和解压缩zip文件。

    Document.save 接受流,因此您可以传入一个像这样打开的文件对象来保存文档。

    你的工作流程可能是这样的:

    doc = docx.Document(...)
    ...

    Make your document

    ...
    with open('outfile.docx', 'xb') as f:

    doc.save(f)

    使用with块而不是raw 是一个好主意,open以确保即使出现错误也能正确关闭文件。

    与您不能直接写入Word文件的方式相同,您也无法附加到它。“追加”的方法是打开文件,加载Document对象,然后将其写回,覆盖原始内容。由于word文件是一个zip存档,因此附加文本很可能甚至不在它所在的XML文件的末尾,更不用说整个docx文件了:

    doc = docx.Document('file_to_append.docx')
    ...

    Modify the contents of doc

    ...
    doc.save('file_to_append.docx')
    请记住,python-docx库可能不支持加载某些元素,当您以这种方式使用同一文件时,这些元素可能最终被永久丢弃。

    2019-07-17 23:25:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载