python docx.opc.exceptions.PackageNotFoundError:打开文档时未找到包
我想用函数python docx.opc.exceptions.PackageNotFoundError:打开文档时未找到包,python,docx,Python,Docx,我想用函数Document()打开一个.docx文件。但它总是会回来: docx.opc.exceptions.PackageNotFoundError:在“/home/chaomaer/PycharmProjects/demo/lab1/book1.docx”中找不到包 但是,当我将函数更改为open()时,它运行良好 我想知道“为什么?” 第一次安装pip安装python docx 然后更改以下代码: from docx import Document import os #document
Document()
打开一个.docx文件。但它总是会回来:
docx.opc.exceptions.PackageNotFoundError:在“/home/chaomaer/PycharmProjects/demo/lab1/book1.docx”中找不到包
但是,当我将函数更改为open()
时,它运行良好
我想知道“为什么?”
第一次安装
pip安装python docx
然后更改以下代码:
from docx import Document
import os
#document = open('book1.docx')
document = Document('book1.docx')
for p in document.paragraphs:
print p.text
它对我有用。希望这会有所帮助
编辑:
>>> import docx
>>> doc = docx.Document()
>>> doc.add_paragraph('Hello world!')
<docx.text.Paragraph object at 0x0000000003B56F60>
>>> doc.save('helloworld.docx')
您应该使用MS或其他合适的编辑器创建docx文件。我的建议是,如果你有账户,使用谷歌文档。在终端中使用touch
命令创建文件没有帮助。我知道一个简单的解决方案
我在一家乌班图操作系统工作
当docx引发错误时,请尝试复制无法在MS word中的新文件中打开的文件。它对我有用
如果有人知道深层次的原因。非常感谢您。我注意到,如果在Windows资源管理器中右键单击并选择“新建”>“Word文档”来创建Word文档,我将永远收到该文档上的PackageNotFoundError。相反,如果我打开Microsoft Word并在其中创建文档,它就可以正常工作。这发生在我身上。结果发现,我试图用docx打开的word文档已损坏。我发现,如果同时打开word文档,即使我没有对它做任何操作,它仍会抛出此错误。关闭word文档为我解决了问题。编写word文档 以下说明可在“automatetheboringstuff”一书中找到
- 要创建自己的.docx文件,请调用docx.Document()以返回新的空白Word文档对象
- add_paragration()document方法向文档中添加新的文本段落,并返回对已添加段落对象的引用
- 添加完文本后,将文件名字符串传递给save()document方法,以将document对象保存到文件中
- 这将在当前工作目录中创建一个名为helloworld.docx的文件
>>> import docx
>>> doc = docx.Document()
>>> doc.add_paragraph('Hello world!')
<docx.text.Paragraph object at 0x0000000003B56F60>
>>> doc.save('helloworld.docx')
导入docx
>>>doc=docx.Document()
>>>文件添加段落(“你好,世界!”)
>>>doc.save('helloworld.docx')
似乎我们中的许多人都在创建名为的文档,我们称之为openobject函数,而docx库在调用openobject函数时创建了一个没有名称的空文件。保存文档时需要添加位置和名称。起初,我遇到了相同的问题,但并非所有Docx文件都有,只有少数文件。然后,我打印了每个文件的本地路径,并发现每当我遇到PackageNotFoundError问题时。大多数情况下,这些文件都是临时Docx文件,即使从Microsoft应用程序也无法打开/读取 下面是我的代码:
def _RsDocx_(SearchString, Path):
flag = 0
index = 0
doc = docx.Document(Path)
for para in doc.paragraphs:
index += 1
if SearchString in para.text:
flag = 1
break
if flag != 0:
print('String', SearchString, 'Found In Line: ', index, 'File Path: ', Path)
我已经导入了Docx lib,并从mainA调用了这个def。Docx格式是高度相互依赖的XML文件的集合。我建议你去图书馆看看,比如。看起来很奇怪。有些.docx文件可以用函数Document()打开,但有些.docx文件不能。它仍然会引发如下错误:docx.opc.exceptions.PackageNotFoundError:Package未在“book1.docx”中找到它似乎很奇怪。有些.docx文件可以用函数Document()打开,但有些.docx文件不能。它仍然会引发如下错误:docx.opc.exceptions.PackageNotFoundError:在“book1.docx”中找不到包。确定。您的包似乎未成功安装。你能告诉我你用的是哪一个python版本吗??如果您使用python3.x,那么就安装包
pip3安装pythondocx
。我使用的是另一个版本的python2.7ok,听起来不错。我也用python2.7.x版本在我的电脑上完成了。您是否从命令行执行了pip安装python docx?如果成功执行此命令,请签入C:\Python27\Lib\site packages`有一个名为
docx`的文件夹。如果一切正常,上述代码将成功运行。谢谢。我检查过你提到的所有条件都是正确的。但答案是它仍然不能很好地工作。文件仍然找不到。我的文件有问题。但是我可以用word打开文件。我现在很困惑。最后,我非常感谢您。如果.docx
文件的路径目录被错误地给出,那么也会产生同样的错误。确实如此。但是我确信路径是正确的。我想知道你,我在我的windows PC上所做的所有尝试,如果路径错误,都会给出相同的错误。谢谢。@chaomaer看到了与您在这里描述的相同的问题,其中一些.docx文件打开良好,而另一些文件出现此错误。你能澄清一下你的Ubuntu解决方案吗?听起来像是你在MS Word中手动打开文件。。。你有Ubuntu中的自动化解决方案吗?