首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python docx AttributeError:'WindowsPath‘对象没有'seek’属性

Python docx AttributeError:'WindowsPath‘对象没有'seek’属性
EN

Stack Overflow用户
提问于 2018-12-03 18:19:50
回答 3查看 14.3K关注 0票数 2

我想插入大约250个图像与他们的文件名到一个docx文件。

我的test.py文件:

from pathlib import Path
import docx
from docx.shared import Cm

filepath = r"C:\Users\Admin\Desktop\img"
document = docx.Document()

for file in Path(filepath).iterdir():
#    paragraph = document.add_paragraph(Path(file).resolve().stem)
    document.add_picture(Path(file).absolute(), width=Cm(15.0))

document.save('test.docx')

在调试之后,我得到了这个错误:

Exception has occurred: AttributeError
'WindowsPath' object has no attribute 'seek'
  File "C:\Users\Admin\Desktop\test.py", line 10, in <module>
    document.add_picture(Path(file).absolute(), width=Cm(15.0))

如何避免此错误?

EN

回答 3

Stack Overflow用户

发布于 2019-02-22 05:57:24

你试过使用io.FileIO吗?

from io import FileIO

from pathlib import Path
import docx
from docx.shared import Cm

filepath = r"C:\Users\Admin\Desktop\img"
document = docx.Document()

for file in Path(filepath).iterdir():
#    paragraph = document.add_paragraph(Path(file).resolve().stem)
    document.add_picture(FileIO(Path(file).absolute(), "rb"), width=Cm(15.0))

document.save('test.docx')

在向PdfFileReader传递文件路径时,我在使用PyPDF2时遇到了相同的错误。当我像这样将FileIO(pdf_path, "rb")文件包装在FileIO中时,错误就消失了,我能够成功地处理该文件。

票数 2
EN

Stack Overflow用户

发布于 2021-01-16 16:02:39

对于Path方法,您需要将文件对象转换为字符串类型。

for file in Path(filepath).iterdir():
# Paragraph = document.add_paragraph(Path(file).resolve().stem)
    document.add_picture(Path(str(file)).absolute(), width=Cm(15.0))
票数 2
EN

Stack Overflow用户

发布于 2019-03-08 09:35:03

在我的例子中,将路径中的'\‘改为'/’就行了。例如:"C:/Users/Admin/Desktop/img“(我相信这可能就是在FileIO中包装它所做的事情,但在我的例子中,这样做并不起作用)

您也可以使用以下命令来实现此目的

os.path.join(mydir, myfile)

正如这里所解释的,https://stackoverflow.com/a/2953843/11126742

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53591660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档