首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中使用base64编码和解码docx文件

如何在python中使用base64编码和解码docx文件
EN

Stack Overflow用户
提问于 2022-08-03 08:09:32
回答 2查看 570关注 0票数 0

我试图对docx文件进行编码,并将其解码/传递到流光中的前端/用户界面上。到目前为止,我知道如何使用base64对字符串进行编码/解码,而不是使用docx文件。

如果你们中有谁有关于如何实现它的代码的话。请在这里分享。

代码语言:javascript
复制
import base64
import streamlit as st

data = open('/home/lungsang/Desktop/streamlit-practice/content/A0/A0.02-vocab.docx', 'rb').read()
encoded = base64.b64encode(data)
decoded = base64.b64decode(encoded)

st.download_button('Download Here', decoded)

我使用了上面的代码,但没有得到想要的结果。相反,我得到了.xml文件的集合。如下图所示

被解码的文件应该是这样的。

如果你们需要我试图编码/解码的docx文件,下面是链接https://docs.google.com/document/d/10zkg1HLDHhZNh83i2tbJqBVMfIsdqW-3/edit

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-03 08:23:40

您需要向filename函数中添加download_button参数

代码语言:javascript
复制
import base64
import streamlit as st

data = open("test.docx", "rb").read()
encoded = base64.b64encode(data)
decoded = base64.b64decode(encoded)

st.download_button('Download Here', decoded, "decoded_file.docx")
票数 0
EN

Stack Overflow用户

发布于 2022-08-03 09:10:49

这只是编码,你必须解码

代码语言:javascript
复制
with open('YOUR DATA FILE', 'rb') as binary_file:
    binary_file_data = binary_file.read()
    base64_encoded_data = base64.b64encode(binary_file_data)
    base64_message = base64_encoded_data.decode('utf-8')
    
    print(base64_message)

使用open打开文件(‘您的数据文件’,'rb')。注意我们是如何传递'rb‘参数和文件路径的--这告诉Python我们正在读取一个二进制文件。不使用'rb',它将假定我们正在读取文本文件.

使用read()方法将文件中的所有数据输入binary_file_data变量。类似于我们处理字符串的方式,我们使用Base64 64.b64encode对字节进行Base64编码,然后使用base64_encoded_data上的解码(‘utf-8’)来使用人类可读的字符获取Base64编码的数据。

执行代码将产生类似的输出:

代码语言:javascript
复制
python3 encoding_binary.py
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73218310

复制
相关文章

相似问题

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