python-docx保存属性只读

python-docx保存属性只读

因此,我必须再次向大家道歉,因为我对于 Linux、Python 以及整个编码都是一个完全的新手。

我已经安装好了python-docx,来做一个非常简单的任务:

import shutil
from docx import Document

name = 'xxxxxxxxxx'
source_path = r'/home/tye/Documents/xxxxxxxxxx/'
template = r'template_xx'

shutil.copytree(source_path+template, source_path+name)
document = Document(source_path+name+'/correspondence/initial.docx')
paragraph = document.add_paragraph ('helloworld')
document.save=(source_path+name+'/correspondence/initial.docx')

虽然文件夹复制功能可以正常工作,但添加段落却不行。每次我都会收到相同的消息:

‘文档’对象属性‘保存’是只读的’

我尝试在 bash 终端中使用 sudo 运行该文件,也尝试更改文档的用户权限。我知道我肯定做错了一些非常简单的事情,但我就是搞不清楚是什么 :(

感谢任何帮助...

附言:我已经在 Google 上搜索过这个问题很多次了。

答案1

这与 Linux 文件系统权限无关,而只是代码中的语法错误。

看最后一行:

document.save=(source_path+name+'/correspondence/initial.docx')

这使得解释器尝试将生成的字符串分配给对象的source_path+name+'/correspondence/initial.docx'对象变量。savedocument

这是被禁止的,因为document.save它受到保护以防止被覆盖,顺便说一句,这毫无意义。

你想要的是调用函数使用字符串作为参数!
要做到这一点,你只需要删除=符号:

document.save(source_path+name+'/correspondence/initial.docx')

更多文档docx.Document.save可参见这里

相关内容