如何删除python的代码行_删除代码行号的Python小工具——Clipboard版

还是我的第一个程序,现在已经升级到4.0了,想想也该给它起个名字了。思来想去,我觉得NX这个名字不错(Number Cut的意思,如果你愿意,也可以把它理解为“牛叉”)。(2010-2-22更正:谢谢

好,下面开始NX 4.0。

昨天用lambda重写了我删除代码行号的Python工具,也就是NX 3.0(见这里),把行号处理的核心程序减少到了一行。不过看这代码,总有点头重脚轻的感觉:前面那么多PyQt代码就为了生成一个窗体嘛。怎么可以进一步减少代码呢?我想到了剪贴板——Clipboard。如果复制代码后,直接在Clipboard里处理行号不就可以了吗?因此有了下边的基本思路:

第一步:复制代码到剪贴板后,启动我的NX程序

第二步:读取剪贴板的内容到一个str,然后用那行lambda去掉行号,返回一个str。

第三步:把处理后的str写入剪贴板,然后再Ctrl+V,完成任务!

上网搜索了一下Python操作剪贴板的代码,发现了这个。语句很简单,符合我的要求。下边是代码:

Clipboard

#-*- coding: utf-8 -*-"""去除代码前行号的Python小工具-Clipboard版

Develop by YanXY"""importwin32clipboard as cimportwin32con as wimportre

c.OpenClipboard()#打开剪贴板strList=c.GetClipboardData(w.CF_TEXT).splitlines(1)#读取剪贴板内容到一个字符列表c.EmptyClipboard()#清空剪贴板c.SetClipboardData(w.CF_TEXT,''.join(map(lambdax:re.compile \

(r'\D*\d+\s?[.|:|\]|\)]?\s?').sub('', x,count=1),strList )))#将去处行号后的字符写回剪贴板,此处用到了lambda语句c.CloseClipboard()#关闭剪贴板

核心程序只有5行,太NX了!自我陶醉一个;)

使用的时候,先Ctrl+C,然后运行这个py,然后Ctrl+V,是不是很方便?

在此基础上,可以把这个程序作成一个开机启动的系统守护程序,自动监控剪贴板的变化,当然不能和一般的复制/粘贴混淆。这个需要捕捉键盘事件,还不知道Python能不能干这个事。先去查查资料,有时间再写了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值