运行环境
- python3.5.1
- pywin32插件
- 注册表注册文件pythonDrag.reg
####解决图片路径的快捷输入
注册表文件内容:
1 2 3 4
| Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler] @="{60254CA5-953B-11CF-8C96-00AA00B8708C}"
|
这个注册表信息,可以将python文件
标记为一个合法的可拖放的目的对象(drop target)。
在将某个文件直接拖放到py文件
上时,在可py脚本中可用sys.rgv
来获取包含脚本本身和被拖放的文件绝对路径的字符串数组。
如,将D盘更目录下一个名为Test.txt的文件拖放到名为Test.py的图标上,则会运行该py脚本,并且在脚本中有如下赋值:
1
| sys.argv = ["D:\Test.py","D:\Test.txt"]
|
这样一来就解决了上传图片路径输入的快捷化,一个简单的拖拽操作就OK啦。
解决图片Markdown格式URL的快速输出
最快速的输出是什么呢?在写文章时莫过于剪贴板了,如果能将上传好的图片外链直接生成相应格式的URL,并直接输出到windows的剪贴板中,剩下的就只是Ctrl+V了。
几经搜索,我终于发现了pywin32这个神器,这是一个包含了许多windows Api的python扩展模块,利用这个扩展包我们就可以轻松的访问并修改windows的剪贴板了。
一个简单的写入剪贴板的例子
1 2 3 4 5 6 7
| import win32clipboard as clipboard import win32con
clipboard.OpenClipboard() clipboard.EmptyClipboard() clipboard.SetClipboardData(win32con.CF_TEXT, "要写入剪贴板的文字") clipboard.CloseClipboard()
|
一个简单的读取剪贴板的例子
1 2 3 4 5 6
| import win32clipboard as clipboard import win32con
clipboard.OpenClipboard() string = clipboard.GetClipboardData(win32con.CF_TEXT) clipboard.CloseClipboard()
|
接入七牛云python SDK
很方便的是七牛云提供了python语言的相关API调用的SDK,在脚本中直接import qiniu
就可以直接使用了,如下上传的demo:
1 2 3 4 5 6 7 8 9 10
| import qiniu
AK = "" SK = "" BUCKET_NAME = "" KEY = ""
Q = qiniu.Auth(AK, SK) TOKEN = Q.upload_token(BUCKET_NAME,KEY,3600) qiniu.put_file(TOKEN, KEY, "上传的文件路径")
|
最后上一下整个脚本的代码吧
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
import sys import os import qiniu import datetime import win32clipboard as w import win32con
url = "http://***************" String = "" KEY = ""
def GetFileNameWithDate(file): filenames = os.path.basename(file).split('.') return filenames[0] + '~~~~' + datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + '.' + filenames[1]
file = sys.argv[1] if os.path.isfile(file): AK = "********" SK = "********" BUCKET_NAME = "*****" Q = qiniu.Auth(AK, SK) KEY = GetFileNameWithDate(file)
TOKEN = Q.upload_token(BUCKET_NAME,KEY,3600) qiniu.put_file(TOKEN, KEY, file)
String = String + "![]("+ url + KEY +")" + "\n" print(String)
w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_TEXT, String.encode("gbk")) w.CloseClipboard()
|