在jupyter贴图片时使用html格式方便调整图片参数,如调整大小和位置等,而使用html需要指定图片地址,这就需要截图后将图片保存到指定目录下,然后复制地址,我觉得比较麻烦,而且不方便导出到其他在线笔记(图片没法显示). 于是我想到了使用图床这种解决方案,由于没有查询到jupyter对图床的支持,我就自己写了个程序.
主要实现的功能是用户按下截图快捷键(我使用的截图软件是snipaste,快捷键是F1)进行截图,接完图片以后等几秒,直接在jupyter粘贴码云链接,运行一下,图片就出来了
实现原理 截图软件会将刚刚截的图片保存至默认文件夹 先写这么多,改日再写吧
import os
import time
from shutil import copyfile
from git import Repo
import pyperclip
import keyboard
def copy_pic_2_local_git():
filedir = '你的截图默认保存位置'
lis = os.listdir(filedir)
lis.sort(key=lambda x: os.path.getmtime((filedir + "\\" + x)))
filename = lis[-1]
file_abs = os.path.join(filedir, filename)
targ_dir = r'git目录'
lis = os.listdir(targ_dir)
lis.sort(key=lambda x: os.path.getmtime((targ_dir + "\\" + x)))
filename = lis[-1] if lis[-1] != '.git' else lis[-2]
now_count = int(''.join(list(filter(str.isdigit, filename)))) + 1
tar_file_name = str(now_count) + '.png'
tar_file_abs = os.path.join(targ_dir, tar_file_name)
copyfile(file_abs, tar_file_abs)
print('复制成功!')
return tar_file_name
def git_op(file_name):
print('开始上传!')
repo = Repo(r'git目录\.git')
git = repo.git
git.add(file_name)
print('开始提交!')
git.commit('-m', 'v1')
git.push()
print('上传成功!')
'''写入剪切板'''
def write(file_name):
base_url = "https://gitee.com/改成/你的/raw/master/"
url = base_url + file_name
html_ = '<img style="float: left;" src="{}">'.format(url)
pyperclip.copy(html_)
pyperclip.paste()
print('剪切板写入成功!')
print('----------------end----------------')
def main():
print('----------------start----------------')
time.sleep(5)
file_name = copy_pic_2_local_git()
git_op(file_name)
write(file_name)
if __name__ == '__main__':
keyboard.add_hotkey('f1', main)
keyboard.wait()
|