Python IDLE在MailMerge尝试处理doc/docx文件时出错
我希望能帮上忙 以前打开word文件时,它会弹出损坏的文件错误,但如果我将.doc更改为.docx并删除一些超链接(我从另一篇文章中了解到,超链接、脚注、注释都会导致错误),这次IDLE会弹出以下错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\User\AppData\Local\Programs\Python38-32\Files\u tempfiller\u\tempfiller.py”,第43行,在 document.write('TBCO.docx') 写入文件“C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\Local Packages\Python38\site Packages\mailmerge.py”,第129行 output.writest(zi.filename,self.zip.read(zi)) 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64_qbz5n2kfra8p0\lib\zipfile.py”,第1475行,已读 将self.open(名称“r”,pwd)作为fp: 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64_qbz5n2kfra8p0\lib\zipfile.py”,第1532行处于打开状态 raise BadZipFile(“截断的文件头”) zipfile.BadZipFile:截断的文件头 因为这是在mailmerge.py文件中,所以我无法真正理解这是什么 我的代码如下:Python IDLE在MailMerge尝试处理doc/docx文件时出错,python,docx,mailmerge,Python,Docx,Mailmerge,我希望能帮上忙 以前打开word文件时,它会弹出损坏的文件错误,但如果我将.doc更改为.docx并删除一些超链接(我从另一篇文章中了解到,超链接、脚注、注释都会导致错误),这次IDLE会弹出以下错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\User\AppData\Local\Programs\Python38-32\Files\u tempfiller\u\tempfiller.py”,第43行,在 document.write('TBCO.docx') 写入文件“C:\U
from __future__ import print_function
from mailmerge import MailMerge
from datetime import date
template = "TBCO.docx" #add .docx suffix if failing
print('1')
document = MailMerge(template)
print(document.get_merge_fields())
print('2')
document.merge(
date = '1.1.1',
name = 'Bob',
nhs = '2223')
print('3')
document.write('TBCO.docx')
print('4')
这些指纹是为了让我看到当它反复给出set()时发生了什么,但这是固定的。我从错误消息中得到的感觉是,出于某种原因,它正在与文件类型进行斗争,但我无法理解错误的原因。任何帮助都将不胜感激
谢谢您刚才是否将文件从
.doc
重命名为.docx
?这些是完全不同的文件格式,只支持其中一种格式的软件将完全无法处理另一种格式。嗨,Jason,我表面上意识到了差异,但请记住,我这样做是为了看看问题是否出在文件上,而不是代码上。在更改它时,无论它采用哪种文件格式,它都不会损坏。py正在打开文件,试图找到mergefield标记,例如,我在几个地方设置了要替换信息的标记,然后在代码中关闭文件。上面的错误发生在.docx上,但即使我使用.doc,它也会损坏文件。我不知道这是否是答案,但这是因为我试图同时读取和写入文件吗?