基于python的有趣(有用)脚本 Part.1
来源:互联网 发布:软件测试的薪资 编辑:程序博客网 时间:2024/05/21 20:44
基于python的有趣(有用)脚本 Part.1
1、动机
因为近期月饼事件比较火,所以也想写一些有意思的脚本。一方面防止编程技术生疏,一方面也是为生活增添乐趣。
这回写的第一部分,是想实现一个更方便的计算器。有多方便呢?只要把要计算的式子”复制“一下,再”粘贴“出来就行。
2.实现
import win32clipboard as wimport win32conimport reimport numpy as npimport timedef eval_filter(s): s = re.sub(r'\s','',s) # remove blank and \n s = re.sub(r'\[','(',s) s = re.sub(r'\]',')',s) s = re.sub(r'log[.0-9]+',lambda match:'np.log2('+str(float(match.group()[4:]))+')',s) s = re.sub(r'ln[.0-9]+',lambda match:'np.log('+str(float(match.group()[4:]))+')',s) s = re.sub(r'log\(','np.log2(',s) s = re.sub(r'ln\(','np.log(',s) return s print 'start'while 1: time.sleep(0.5) w.OpenClipboard() s = w.GetClipboardData(win32con.CF_TEXT) w.CloseClipboard() if len(s)<5 : continue s = eval_filter(s) try: print s res = eval(s) print res w.OpenClipboard() w.EmptyClipboard() w.SetClipboardText(str(res)) w.CloseClipboard() except Exception,e: print 'fail'
首先从剪切板中读取信息,然后用正则表达式把其中的运算(如log、ln)换成对应的numpy函数(如np.log2,np.log),随后调用eval函数做计算,最后写回到剪切板中。
虽然只是一个很简单的程序,但是我觉得自己收获很大:对于程序输入的方式的扩展。
之前用内存数据库redis作为爬虫的数据中转时也有这种感觉,计算中的数据流以数据库作为节点,数据库的扩展性就是程序的扩展性。我可以用python下载数据,用scala或者其它什么处理数据,只有都支持redis这个数据库,则数据的分发是轻易而自然的。
最近也在试用单片机arduino。作为和python一样易于敏捷开发,原型设计的开源硬件系统,arduino让我感到非常惊艳。因为可以通过python试用串口和硬件直接交互,这是一个很刺激的想法。
0 0
- 基于python的有趣(有用)脚本 Part.1
- 几个有用的python脚本
- python:一个比较有趣的脚本
- 一些有用的小的python脚本(一)
- 有用有趣的站点
- 很有用的shell / python 脚本片段(记录)
- python里那些有趣有用又低调的特性
- linux下三个有用的 Python 脚本
- 一些有趣&有用的网站
- 有用有趣的某些定义
- 有趣有用的apk应用
- 基于symbian s60 开发的纸牌游戏(part 1)
- 有用的SQL脚本
- 一些有用的脚本
- 有用的javascirpt脚本
- 有用的javascript脚本
- 有用的awk脚本
- Linux 有用的脚本
- 仿安卓QQ界面布局活动
- (1) nginx的安装
- Java中Collection和Collections的区别
- java.lang.UnsatisfiedLinkError: D:\Tomcat\apache-tomcat-7.0.67\bin\tcnative-1.dll: Can't load IA 32-
- 居中div的方法
- 基于python的有趣(有用)脚本 Part.1
- Linux系统下的基本操作命令
- 第一个EventBus实践
- Linux mint18安装WPS与截图工具shutter
- HDU-2026首字母变大写
- 11个热门物联网开发平台的比较
- 深拷贝
- ubuntu下的ssh安装配置
- iOS开发-iMessage App可发送贴纸、音频、视频