python-3.x 如何将二进制内容从包含docx的请求转换为实际的docx文件?

a2mppw5e  于 2023-03-13  发布在  Python
关注(0)|答案(2)|浏览(189)

我想知道是否有一种策略可以将二进制内容转换为docx。更准确地说,我将docx作为blob存储在数据库中。我想使用python获取它并将其作为docx存储在某个地方。我有一个GET请求,可以使用该请求获取文件,但不确定如何将其转换为docx。
具体内容:

r = requests.get(url)
r.content = b'SomeStuffThatLooksLikeXMLinfo'

我可以将其保存为.bin,但不知道如何将其转换为docx文件。
我试着把它保存为一个.bin文件,但是没有用。我不知道是否有一个包可以做到这一点,或者我可以使用什么。基本上使用python,我想从二进制到docx。

nafvub8i

nafvub8i1#

你认为使用requests.get()的步骤是正确的。要将它转换为docx,你可能需要python-docx库。不确定你是否已经在使用它,否则在这种情况下选择pip安装。
你的代码可能需要一个二进制流,所以你的代码可能如下所示:

r = requests.get(url)
binaryStream = io.BytesIO(r.content)
yourDocument = Document()
yourDocument.open(binaryStream, content_type="your mime type")
yourDocument.save("your/prefered/path")
lb3vh1jj

lb3vh1jj2#

你还没有给出一个可测试的URL,我也不太清楚到底是什么问题。
由于您似乎拥有一个有效的MS-Word文档的内容,因此您不需要任何额外的包来操作此类文档,您只需要将所拥有的内容写入docx文件即可。

import pathlib

r = requests.get(...)

pathlib.Path('document.docx').write_bytes(r.content)

或者您应该能够使用plain old:

with open('document.docx', 'wb') as fd:
    fd.write(r.content)

相关问题