本文实例讲述了python实现去除代码前行号的方法。分享给大家供大家参考。具体实现方法如下:
复制代码 代码如下:# -*- coding: utf-8 -*-
import wx
class mainwindow(wx.frame):
def __init__(self, parent, id):
wx.frame.__init__(self, parent, id,
u'去除代码前行号的python小工具 - wxpython版 - develop by yanxy')
self.textbox = wx.textctrl(self, 1, style=wx.te_multiline,size=(600,600))
self.butok = wx.button(self, label=u去除行号)
self.butleft = wx.button(self, label=u去除左侧一个字符)
self.bind(wx.evt_button, self.cutlinenum, self.butok)
self.bind(wx.evt_button, self.cutleftchar, self.butleft)
self.bind(wx.evt_close, self.onclosewindow)
self.sizer = wx.boxsizer(wx.horizontal)
self.sizer.add(self.textbox,1,wx.expand)
self.sizer.add(self.butok)
self.sizer.add(self.butleft)
self.setsizer(self.sizer)
self.setautolayout(1)
self.sizer.fit(self)
self.show(true)
def onclosewindow(self, event):
self.destroy()
def cutlinenum(self, event):
multistr = unicode(self.textbox.getvalue()).splitlines(1)
outstr = u''
for singlestr in multistr:
singlestr = singlestr.lstrip()
i=0
for charstr in singlestr:
if charstr.isdigit():
i += 1
elif i>0:
singlestr = singlestr[i:]
break
else:
break
outstr += singlestr
self.textbox.setvalue(outstr)
def cutleftchar(self, event):
outstr = u''
multistr = unicode(self.textbox.getvalue()).splitlines(1)
for singlestr in multistr:
singlestr = singlestr[1:]
outstr += singlestr
self.textbox.setvalue(outstr)
if __name__ == '__main__':
app = wx.pysimpleapp()
frame = mainwindow(parent=none, id=-1)
app.mainloop()
del app希望本文所述对大家的python程序设计有所帮助。