首页 > 编程语言 >利用python实现typora自动上传图片

利用python实现typora自动上传图片

时间:2022-12-16 17:56:40浏览次数:71  
标签:文件 Typora python typora 上传 图片

利用python实现Typora内图像的上传

缘由及目的

在之前的markdown文件书写中,采用Notion软件。但是后来发现Notion的导出存在很多问题,尤其是在上传到博客园时,对于图片的处理并不使人满意。

为了解决这一问题,首先参考了博主贺墨于的上传Markdown文件内的本地图片至博客园博文,该博文首先针对md文档的上传提出了一种解决方案, 即采用博主自编的软件,分别将md文件和图片拖入程序,可实现自动上传。具体操作可以参考博文。

但是在实际应用中,发现利用Notion导出的文件中,对于图片的命名出现了编码混乱,从而导致该程序无法实现图片的导入和上传。

image-20221216124546777

这里推测出现乱码的原因是导出的路径中含有中文,因此从使用者的角度,避免路径包含中文确实是一种解决方案,但是对于日常生活显然不友好。所以寻求其他的解决思路。

在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+,),在图片选项中设置为:

image-20221216170408287

点击验证选项,验证通过,即为成功!

image-20221216170527741

由此,在编写md文档时,如果插入图片,只需右键点击上传图片即可,或者写完后在选项里统一上传。

解决问题

在具体实现过程中,遇到了如下的问题,就解决方案进行记录。

01 typora设置中出现找不到指定文件的错误

image-20221216171201457

定睛一看,是typora安装路径下Program Files之间的空格导致路径不正确。为此,只需将文件路径放在双引号中作为字符串即可。即: python "E:\Program Files\Typora\load.py"

02 无法调用python

错误提示如下:

image-20221216171752609

依据python编程经验,这属于是通过cmd调用python时在环境变量里没有找到python路径。通过在cmd里输入python,弹出的不是python交互界面的现象,验证了这一猜想。同时,发现自动打开了微软商城,这是什么原因呢?打开环境变量一探究竟。

image-20221216172135535

如图所示,在环境变量里面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目录即可:

image-20221216173436353

以上,即可正常使用typora的图片上传功能。

由于本人非计算机专业出身,因此对这些问题的理解如有不够深入的地方,还望多多指教。

此致。

标签:文件,Typora,python,typora,上传,图片
From: https://www.cnblogs.com/VicoZhang/p/16987993.html

相关文章

  • 【脚本项目源码】Python制作艺术签名生成器,打造专属你的个人艺术签名
    前言明天就是拥抱情人节,情侣们会在公开的场合拥抱,向世人宣告你俩的爱意,也让这个寒冷的冬天变得格外温馨。到了年底依然能热情拥抱,也见证了两人情意如昔。今天子川就给大......
  • python利用列表知识,编写购物车小程序
    #readme#该程序的主要是用来模拟购买商品的store=[("iphone",5800),("pad",2000),("dress",500),("shoe",400)]#定义一个商品列表salary=input("输入你的工资")#输入工......
  • SiteFactory支持Word内容一键上传
    ​ ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安......
  • python-文件操作
    python-文件操作操作流程'''文件操作 打开文件:open 读写文件   读:把文件的内容读到变量-read里面   写:把变量值写入到文件里面 关闭文件'''......
  • Asp.Net上传文件示例(保存文件路径到数据库)
    把下面的代码保存为Upload.aspx即可运行(事先在同目录下建立一个Upload文件夹保存上传的文件,再建立一个数据库、表Upload,字段ID:自动编号,FilePath:文本型):<%@ImportName......
  • 【python】subprocess 使用
    subprocess使用importsubprocessp=subprocess.Popen('ls-l',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,bufsize=1)bufsize:缓冲区大小.当......
  • 【快应用】重新打开快应用, 保存/上传的图片资源不显示
    ​ 现象描述将上传的图片或者保存在手机本地的图片在快应用中显示出来,但是退出快应用后再次打开会无法显示. 问题分析此问题是由于将图片的路径保存在Temp区(表示从......
  • 【快应用】重新打开快应用, 保存/上传的图片资源不显示
     现象描述将上传的图片或者保存在手机本地的图片在快应用中显示出来,但是退出快应用后再次打开会无法显示.问题分析此问题是由于将图片的路径保存在Temp区(表示从外部映射过......
  • 世界上最漂亮的写作工具Typora(创作者必备软件)
    有一种爱是一触即发的,看到Typora的第一眼,我就爱上了它。 官网下载地址:​​https://typora.io/#download​​不过目前typora已经开启收费模式,目前采用的是一次性付费而非订......
  • Python SQL 驱动程序 - pymssql
    PythonSQL驱动程序-pymssql前言pymssql官方地址:https://pypi.org/project/pymssql/一、下载pymssql不通的操作系统,不同的Python版本下载对应的pymssql注意:博主运......