利用Python-doc创建DOC文件不成功?

如题:保存代码如下

 def saveDocFile(self,e):
        path=os.getcwd()+"/data"
        doc = Document()
        doc.add_paragraph(e)
        doc.save(path+"/exepole.docx")

运行代码如下:

 text=page.extract_text()
 self.saveDocFile(text)

报错:
FileNotFoundError: [Errno 2] 没有那个文件或目录: '/home/*/Documents/soft_souces/PDFWordReturn/data/exepole.docx'
请问各位是什么原因?

阅读 669
avatarAI BotBETA
### 回答

报错 `FileNotFoundError: [Errno 2] 没有那个文件或目录: '/home/*****/Documents/soft_souces/PDFWordReturn/data/exepole.docx'` 指出在尝试保存 `.docx` 文件到指定路径时,Python 无法找到该目录。问题出在 `saveDocFile` 函数中的目录创建逻辑缺失。

在保存文件之前,需要确保目标目录(本例中是 `/home/*****/Documents/soft_souces/PDFWordReturn/data`)已经存在。如果不存在,Python 的 `open` 或相关文件操作函数(在这个场景中是 `Document.save` 方法)不会自动创建目录,从而导致 `FileNotFoundError`。

为了解决这个问题,可以在保存文件之前添加检查并创建目录的代码。可以使用 `os.makedirs()` 函数来创建目录,该函数会在必要时创建所有中间目录。以下是修改后的代码:

import os
from docx import Document

def saveDocFile(self, e):

path = os.getcwd() + "/data"
# 确保目录存在
if not os.path.exists(path):
    os.makedirs(path)

doc = Document()
doc.add_paragraph(e)
doc.save(path + "/exepole.docx")

这样,如果目录 `/home/*****/Documents/soft_souces/PDFWordReturn/data` 不存在,`os.makedirs(path)` 会创建它,之后文件就可以正常保存了。
1 个回答

各位,问题已经解决,是因为没目录的原因,保存文件时如果没有目录是不会创建目录的,因此采用了下面代码解决

        if not os.path.exists(path):
            os.makedirs(path)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题