原标题:如何用 Python 写 Alfred Workflow

用 Mac 的同学应该都听过 Alfred,号称效率神器。但是,你有没有想过可以用 Python 自己写一个 Workflow 呢?

作者:_CallMe靠谱叔

原文:http://www.jianshu.com/p/4b980a0193b6

Alfred 的是公认的 MacBook 效率神器,入坑 Mac 这么久用了很多别人写的 workflow 觉着真心不错。学了一点 python 终于可以写个简单的 workflow 了,先上效果图:

先上效果图。

关于Alfred的介绍可以看看「少数派」的系列文章:。

准备工作:

MacBook + Alfred 2或3 + Alfred Powerpack

下载 deanishe 的 python alfred 框架 ,我们可以用他造的轮子完成我们自己的workflow了。

注册和风天气,用天气API获取我们要在alfred输出的天气数据。步骤:

1.新建个空白的 workflow :

2.选中刚才新建的 workflow ,右边空白区域右键选择 Inputs - s ,会弹出一个新的设置窗口:

keyword :在 alfred 里输入这个值,就会调起这个 ; Language :这里是指脚本使用的编程语言,虽然我们用的是 python ,但是为了便于调试,建议还是用 bash 调用自己写的脚本。

3.打开这个 workflow 的位置

在 finder 里面打开 workflow

4.把 deanishe 的 workflow 框架和自己的。 py 脚本放在这个文件夹。

# -*- coding:utf-8 -*-

importjson

importsys

fromdatetimeimportdatetime

fromworkflowimportWorkflow,web

reload(sys)# Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入

sys.setdefaultencoding('utf-8')

# 这个是和风天气的API key,替换成你自己的就行

API_KEY='你的API_KEY'

# 返回某日是星期几

defthe_day(num):

week=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']

returnweek[num]

defmain(wf):

url='https://free-api.heweather.com/x3/weather?cityid=CN101010100&key='+API_KEY

# 这里用了deanishe 的框架里面的web模块来请求页面,web模块类似requests库

r=web.get(url=url)

r.raise_for_status()

resp=r.text

data=json.loads(resp)

d=data['HeWeather data service 3.0'][0]

city=d['basic']['city']

# 获取一周内的数据

forninrange(0,7):

day=d['daily_forecast'][n]

# 把API获取的天气、温度、风力等信息拼接成 alfred条目的标题、副标题

title=city+'t'+the_day(datetime.weekday(datetime.strptime(

day['date'],'%Y-%m-%d')))+'t'+day['cond']['txt_d']

subtitle='白天 {weather_day}|'

'夜间 {weather_night} |'

' {tmp_low}~{tmp_high}摄氏度|'

' {wind_dir} {wind_sc}'.format(

weather_day=day['cond']['txt_d'],

weather_night=day['cond']['txt_n'],

tmp_high=day['tmp']['max'],

tmp_low=day['tmp']['min'],

wind_sc=day['wind']['sc'],

wind_dir=day['wind']['dir']

)

# 向alfred添加条目,传标题、副标题、图片路径(图片直接用的和风天气提供的天气图,每个图片的命名对应天气状态码)

wf.add_item(title=title,subtitle=subtitle,

icon='images/{code}.png'.format(code=day['cond']['code_d']))

wf.send_feedback()

if__name__=='__main__':

wf=Workflow()

sys.exit(wf.run(main))

5.天气的 icon 放在 workflow 所在的文件夹 6.给你的 workflow 添加一个版本文件

7.在 Alfred 中调试 workflow

搞定收工

代码不完善的地方欢迎留言讨论,如果您觉得这篇文章对您有帮助请点个赞哟。

题图:pexels,CC0 授权。

点击阅读原文,查看更多 Python 教程和资源。返回搜狐,查看更多

责任编辑:

python workflow_如何用 Python 写 Alfred Workflow相关推荐

  1. python语言是 创造的_慢步python,如何用python语言创造出一个真正的独立exe程序?...

    我们学习编程,终极目标还是编写一个独立的应用程序.独立的应用程序应该像QQ,微信一样不依靠其他程序运行,只有平台支持,就可以运行.从这个意义上说,所用应用程序都是基于操作系统运行的. 那么如何用pyt ...

  2. python udp_如何用python方法检测UDP端口

    如何用python方法检测UDP端口,首先要了解什么是UDP端口及作用.网上搜索了一圈后,我得到的个人理解是:UDP端口是含有网络服务必须的源端口和目的端口信息,用以建立和实现网络传输服务. 那么如何 ...

  3. python画-如何用Python画各种著名数学图案 | 附图+代码

    原标题:如何用Python画各种著名数学图案 | 附图+代码 用Python绘制著名的数学图片或动画,展示数学中的算法魅力. Mandelbrot 集 代码:46 lines (34 sloc) 1. ...

  4. python数据分析——如何用python连接远程数据库

    本文将以SQLite.MySQL,PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作. SQLite SQLite可能是与Python连接的最方便的数据库,因为我们不需要安 ...

  5. 【Python】如何用Python发送SMTP邮件

    [背景] 自动发送邮件通知是流成自动化系统必备的功能,今天介绍如何用Python实现. [代码] 这里以163邮箱为例 def send_smtp_mail(host="smtp.163.c ...

  6. 人生苦短我用python壁纸_人生苦短,我用 Python——我如何用 Python 助力工作和生活?...

    在生活和工作中,往往充斥着一些枯燥且乏味的事情.所以要让自己从机械地重复性劳动中解放出来,才是解放身心的正确姿势. 本文列举了我自己平时在工作和生活中的七个小场景,每个场景都是带有这样「重复性」性质的 ...

  7. 【Python】如何用 python 计算矩阵相乘 - numpy.dot()

    文章目录 一.如何用 python 计算矩阵乘法? 二.实例 参考链接 一.如何用 python 计算矩阵乘法? 使用 Numpy 包里的 dot() 函数. 该函数主要功能有两个:向量点积 和 矩阵 ...

  8. chatgpt赋能python:如何用Python计算球的表面积和体积

    如何用Python计算球的表面积和体积 球体是数学中的常见图形,计算球的表面积和体积是科学研究和应用中的重要问题.Python作为一种高效.易学.广泛使用的编程语言,可以很方便地用于计算球的表面积和体 ...

  9. chatgpt赋能python:如何用Python抢券?

    如何用Python抢券? 如果你是一个网购达人,你一定知道,有时候一些折扣券或者优惠码是非常有用的.但是,很多时候这些优惠码数量有限,而且很多人都会去抢购,最后的结果就是很多人都抢不到.这时,有些人可 ...

最新文章

  1. c语言输出n以内完数,c语言:输入n,输出不超过n的全部完全数。能帮忙找出怎么错么?...
  2. keras打印模型结构
  3. [BZOJ3261] 最大异或和 (异或前缀和,可持久化Trie)
  4. java中对象的生存期_深入理解Java虚拟机-判断对象是否存活算法与对象引用
  5. 华为新系统鸿蒙有哪些手机_如今鸿蒙手机之后,华为启用新系统,谷歌微软措手不及...
  6. 微服务学习之Eureka注册中心集群环境构建【Hoxton.SR1版】
  7. PDF在线阅读开发经验(FlexPaper+SWFTools+SaveAsPDFandXPS)
  8. vue安装vue-awesome-swiper@3实现图片列表缩略图双向控制效果
  9. 5口千兆工业以太网交换机宽温导轨式二层非网管全千兆工业级交换机
  10. Java实现 蓝桥杯 算法训练 未名湖边的烦恼
  11. 声音处理用什么软件?3款软件让你的作品出圈!
  12. 大学——梦开始的地方
  13. 快手智能处理与编码算法产品化之路
  14. 2021年河南高考成绩排名查询,2021年河南高考成绩排名查询系统,河南高考位次排名查询...
  15. U盘随身带,工作任我行
  16. 企业招聘新方式—远程面试
  17. 甲类功率放大器的简介
  18. Python学习笔记16:爬取百度搜索图片的缩略图
  19. 难道要让中国世代的人都去充当廉价的劳动力吗?
  20. 射雕里的丘处机,与五绝的差距究竟有多大?

热门文章

  1. 服务器一直即将注销你的登录,Msdn我告诉你Win10系统提示即将注销你的登录?
  2. 乡村少年宫计算机小组活动教案,小学少年宫兴趣小组烹饪教案
  3. 操作系统(四)操作系统的主要功能
  4. 报告| Q3区块链游戏行业全景:玩赚强势驱动,链游热度持续
  5. 阅文集团副总裁傅徐军:最佳技术架构选型方法论 1
  6. 关于AQS中enq( )方法CAS操作的疑惑
  7. linux的基本命令(新手上路,多多关照)
  8. collection与foreach
  9. APP安全环节缺失,手游运营商如何应对APP破解困境
  10. Win32输入法编程技术的分析研究