python - 如何使用 Python 从本地文件创建数据 url?
问题描述
我可以像这样读取本地文件,但是我现在如何才能将本地文件表示为数据 url?我看不到任何这样做的方法。
这是一个数据 url: https ://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
import urllib.request
import random
import os
filename = urllib.request.pathname2url(random.choice(os.listdir('./sampledocuments')))
print(filename)
r = urllib.request.urlopen('file:///Users/myusername/sampledocuments/' + filename)
print(r)
print(r.info)
print(r.geturl)
print(dir(r))
解决方案
非常简单:给定mimetype
and data
,
import base64
...
f"data:{mimetype or ''};base64,{base64.b64encode(data).decode()}"
要获取数据,您可以按如下方式修改代码:
filename = random.choice(os.listdir('./sampledocuments'))
with open(filename, "rb") as f:
data = f.read()
如果你知道它是什么,请设置mimetype
它,但即使它是它也会起作用None
(它可能不会做你想要的)。
推荐阅读
- c - 更改计算器不返回正确答案
- base64 - 将 Base64 转换为 Hex 混淆
- twitter-bootstrap-3 - 当一列有textarea时,如何在引导行中垂直定位字体真棒图标
- javascript - 返回ajax数组后的每个javascript
- azure - Azure 数据仓库所需的连接字符串
- python-3.x - 为什么 keras.backend.pool3d 要求 tensor_in 是 5 维的?
- swift - 无法使用 Calendar.current.dateComponents 检查经过的时间
- json - 计划 POST 的 Phillips Hue REST API 转换时间不起作用
- opengl - LWJGL/OpenGL 当我将纹理映射到半球体或球体时,为什么我的纹理边缘会出现点?
- ios - UIView 上的 CollectionView 单元格实例(委托外部)无法快速运行 5