利用python实现Typora内图像的上传
缘由及目的
在之前的markdown文件书写中,采用Notion软件。但是后来发现Notion的导出存在很多问题,尤其是在上传到博客园时,对于图片的处理并不使人满意。
为了解决这一问题,首先参考了博主贺墨于的上传Markdown文件内的本地图片至博客园博文,该博文首先针对md文档的上传提出了一种解决方案, 即采用博主自编的软件,分别将md文件和图片拖入程序,可实现自动上传。具体操作可以参考博文。
但是在实际应用中,发现利用Notion导出的文件中,对于图片的命名出现了编码混乱,从而导致该程序无法实现图片的导入和上传。
这里推测出现乱码的原因是导出的路径中含有中文,因此从使用者的角度,避免路径包含中文确实是一种解决方案,但是对于日常生活显然不友好。所以寻求其他的解决思路。
在Typora中,具备有图片的自动上传功能,在贺墨于博主的文中也有提及,因此转战Typora平台,并进行一系列的部署。在实际操作中也是遇到一些问题,将解决的过程记录如下。
实现方案
1 编写自动上传程序
借用贺墨于博主的程序如下:
import requests
import json
from sys import argv
uploadUrl = 'https://upload.cnblogs.com/imageuploader/processupload?host=www.cnblogs.com'
headers = {
"user-agent": "", # 自己的user-agent,在博客园中按f12进入检查获取
"cookie": "" # 同上
}
# 类型映射
mimeMapping = {".png": 'image/png', '.gif': 'image/gif', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg'}
for i in argv[1:]:
# 图片地址参数
imgPath = i
# 对应的mime
mime = imgPath[imgPath.rindex("."):]
file = [
("", ("fileName", open(imgPath, "rb"), mimeMapping[mime]))
]
response = requests.post(uploadUrl, headers=headers, files=file)
data = json.loads(response.text)
print(data['message'])
将文件保存在任意文件夹下。为了后续管理方便,我选择放在Typora的安装目录下。
2 Typora 的设置
在Typora中,打开设置(快捷键 ctrl+,
),在图片选项中设置为:
点击验证选项,验证通过,即为成功!
由此,在编写md文档时,如果插入图片,只需右键点击上传图片即可,或者写完后在选项里统一上传。
解决问题
在具体实现过程中,遇到了如下的问题,就解决方案进行记录。
01 typora设置中出现找不到指定文件的错误
定睛一看,是typora安装路径下Program Files之间的空格导致路径不正确。为此,只需将文件路径放在双引号中作为字符串即可。即: python "E:\Program Files\Typora\load.py"
02 无法调用python
错误提示如下:
依据python编程经验,这属于是通过cmd调用python时在环境变量里没有找到python路径。通过在cmd里输入python
,弹出的不是python交互界面的现象,验证了这一猜想。同时,发现自动打开了微软商城,这是什么原因呢?打开环境变量一探究竟。
如图所示,在环境变量里面WindowsApps放在了第一位,因此按照从上到下的顺序,不会直接从cmd里调用python,而是直接运行微软商城。因此,将WindowsApps下移至最后一位,即可解决问题。注意,要重启一下typora才可以生效。
03 无法运行python文件
报错:Can‘t connect to HTTPS URL because the SSL module is not available
解决方案在如下文章中:Can‘t connect to HTTPS URL because the SSL module is not available
简单来说,就是python运行时应该在Anaconda\DLLs目录下寻找openssl的dll文件,而实际的文件是在Anaconda3\library\bin目录下,因此将这两个dll文件复制一份到Anaconda\DLLs目录即可:
以上,即可正常使用typora的图片上传功能。
由于本人非计算机专业出身,因此对这些问题的理解如有不够深入的地方,还望多多指教。
此致。
标签:文件,Typora,python,typora,上传,图片 From: https://www.cnblogs.com/VicoZhang/p/16987993.html