python软件代码开头_我的第一个Python程序——去除代码前行号的Python小工具

虎年开始学Python了!(是不是要蛇年开始学比较好?)

初学Python,经常要在网上拷贝别人的代码,但是很多网站的代码前总会有数字行号,一行一行删除实在太麻烦。baidu一下,删除代码前行号的方法也不少了,有用word、utraedit等软件的,也有用javascript写的小工具,还有用python写的命令行工具等。试用了一下,多少都不太符合自己的要求,于是就写了这个小工具。主要还是为了练练手。这是我的第一个python程序(如果hello world不算的话),希望有人能用到。

代码如下,有两个版本,wxPython和PyQt4。现在这个代码比较冗长,如果用正则表达式可能会好一点,不过我还不太会正则,以后再说了。

(2010-2-20 更新:正则表达式版本; 2010-2-21 更新:lambda版本; 2010-2-22更新:Clipboard版本 )

以下是wxPython版本

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngwxPython代码

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

Develop by Yanxy"""importwxclassMainWindow(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)defOnCloseWindow(self, event):

self.Destroy()defCutLineNum(self, event):

multiStr=unicode(self.textBox.GetValue()).splitlines(1)

outStr=u''forsingleStrinmultiStr:

singleStr=singleStr.lstrip()

i=0forcharStrinsingleStr:ifcharStr.isdigit():

i+=1elifi>0:

singleStr=singleStr[i:]breakelse:breakoutStr+=singleStr

self.textBox.SetValue(outStr)defCutLeftChar(self, event):

outStr=u''multiStr=unicode(self.textBox.GetValue()).splitlines(1)forsingleStrinmultiStr:

singleStr=singleStr[1:]

outStr+=singleStr

self.textBox.SetValue(outStr)if__name__=='__main__':

app=wx.PySimpleApp()

frame=MainWindow(parent=None, id=-1)

app.MainLoop()delapp

以下是PyQt4版本

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.pngPyQt4

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

Develop by Yanxy"""importsysfromPyQt4importQtCore, QtGui

app=QtGui.QApplication(sys.argv)

window=QtGui.QWidget()

window.resize(800,600)

window.setWindowTitle(u'去除代码前行号的Python小工具 - PyQt4版 - Develop by Yanxy')

textBox=QtGui.QTextEdit()

textBox.setAcceptRichText(bool(0))

butOK=QtGui.QPushButton(u"去除行号")

butLeft=QtGui.QPushButton(u"去除左侧一个字符")

layout=QtGui.QHBoxLayout()

layout.addWidget(textBox)

layout.addWidget(butOK,alignment=QtCore.Qt.AlignTop)

layout.addWidget(butLeft,alignment=QtCore.Qt.AlignTop)

window.setLayout(layout)defCutLineNum():

multiStr=unicode(textBox.toPlainText()).splitlines(1)

outStr=u''forsingleStrinmultiStr:

singleStr=singleStr.lstrip()

i=0forcharStrinsingleStr:ifcharStr.isdigit():

i+=1elifi>0:

singleStr=singleStr[i:]breakelse:breakoutStr+=singleStr

textBox.setText(outStr)defCutLeftChar():

outStr=u''multiStr=unicode(textBox.toPlainText()).splitlines(1)forsingleStrinmultiStr:

singleStr=singleStr[1:]

outStr+=singleStr

textBox.setText(outStr)

QtCore.QObject.connect(butOK,QtCore.SIGNAL("clicked()"),CutLineNum)

QtCore.QObject.connect(butLeft,QtCore.SIGNAL("clicked()"),CutLeftChar)

window.show()

sys.exit(app.exec_())

使用方法很简单:把代码粘贴到文本框中,然后点“去除行号”,再点“去除左侧一个字符”就好了,对于大多数1. 2、3: 等开头的代码就没问题了。个别代码比较BT的,比如(1) [2] #3 等开头的,就先点“去除左侧一个字符”,再重复前面操作就OK了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值