Python 去除代码前行号 除去左侧一个字符

来源:互联网 发布:震爆火箭炮升级数据 编辑:程序博客网 时间:2024/06/05 10:49

代码如下所示:(使用wx)


# -*- coding: utf-8 -*-import wxclass 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

程序启动后出现一个编辑控件,将要处理 的文本拷贝到控件里面,然后点击右边的按钮做相应的处理。



相关链接:

http://www.cnblogs.com/swjm119/archive/2012/01/18/2325280.html


采用正则之后的 CutLineNum 函数:

    def CutLineNum(self, event):        multiStr = unicode(self.textBox.GetValue()).splitlines(1)        print multiStr        outStr = u''        p = re.compile(r'\D*\d+\s?[.|:|\]|\)]?\s?')        for singleStr in multiStr:            outStr += p.sub( '', singleStr,count = 1 )        self.textBox.SetValue(outStr)



原创粉丝点击