我想插入大约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))
如何避免此错误?
发布于 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
中时,错误就消失了,我能够成功地处理该文件。
发布于 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))
发布于 2019-03-08 09:35:03
在我的例子中,将路径中的'\‘改为'/’就行了。例如:"C:/Users/Admin/Desktop/img“(我相信这可能就是在FileIO中包装它所做的事情,但在我的例子中,这样做并不起作用)
您也可以使用以下命令来实现此目的
os.path.join(mydir, myfile)
https://stackoverflow.com/questions/53591660
复制相似问题