欢迎来到天天爱彩票官方网站_天天爱彩票官网_天天爱彩票官网电脑版! 联系我们 网站地图

天天爱彩票官方网站_天天爱彩票官网_天天爱彩票官网电脑版

0379-65557469

项目建议书
全国服务热线
0379-65557469

电话: 0379-65557469
0379-63930906
0379-63900388 
0379-63253525   
传真: 0379-65557469
地址:洛阳市洛龙区开元大道219号2幢1-2522、2501、2502、2503、2504、2505室 

项目建议书
当前位置: 首页 | 咨询案例 > 项目建议书

Python3.6完成一个简略的文本编辑器

作者:admin 发布时间:2019-05-14 19:30:05 浏览次数:259
打印 收藏 关闭
字体【
视力保护色

今日做一个简略的文本修改器,首要完结如下功用:

  1. 能够翻开一个文本文件。
  2. 能够修改并保存修改后的文件。
  3. 能够完结剪切和张贴等简略操作。
  4. 能够完结查找操作并主动定位到查找内容地点方位。

代码运转作用如图所示:

显现文本内容

悉数代码如下:

  1. 编写一个ScrolledText类,并作为大连六本木一个模块用于后边调用。
print('scrolledtext')
from tkinter import *
class ScrolledText(Frame):
def __init__(self,parent=None,text='',file=None):
Frame.__init__(self,parent)
self.pack(expand=YES,fill=BOTH)
self.makewidgets()
self.settext(text,file)
def makewidgets(self):
sbar=Scrollbar(self)
text=Text(self,relief=SUNKEN)
sbar.config(command=text.yview)
text.config(yscrollcommand=sbar.set)
sbar.pack(side=RIGHT,fill=Y)
text.pack(side=LEFT,expand=YES,fill=BOTH)
self.text=text
def settext(self,text='',file=None):
if file:
text=open(file,'r').read()
Python3.6完成一个简略的文本编辑器self.text.delete('1.0','end') # 将file文件中的一切内容铲除;1.0表明第1行第0列(行数从1开端,列数从0开端,2.1表明第2行中第2个字符)
self.text.insert('1.0',text) # 从开端方位开端将text中的内容写入到file文件
self.text.mark_set(INSERT,'1.0') # 将光标刺进到文本的最初方位(INSERT是一个预界说的标志,用于承认光标方位)
self.text.focus()
def gettext(self):
return self.text.get('1.0',END+'-1c') # END+'-1c'即"end-1c",意为从END往回数榜首个字符,因为END指向的是字符串最终一个字符后边的方位,因而,该表达式实践指向的便是最终一个字符自身

保存文本文件

2.编写一个规范退出按钮的类(后边会直接经过调用模块来运用):

from tkinter import *
from tkinter.messagebox import askokcancel
class Quitter(Frame):
def __init__(self,parent=None):
Frame.__init__(self,parent)
self.pack()
widget=Button(self,text='Quit',command=self.quit)
widget.pack(side=LEFT,expand=YES,fill=BOTH)
def quit(self):
ans=askokcancel('Verify exit','Really quit?')
if ans:Frame.quit(self)

剪切作用

3.编写主代码:

from tkinter import *
from tkinter.simpledialog import askstring
from tkinter.filedialog import asksaveasfilename
from quitter import Quitter
from scrolledtext import ScrolledText
class SimpleEditor(ScrolledText):
def __init__(self,parent=None,file=None):
frm=Frame(parent)
frm.pack(fill=X)
Button(frm,text='Save',command=self.onSave).pack(side=LEFT)
Button(frm,text='Cut',command=self.onCut).pack(side=LEFT)
Button(frm,text='Paste',command=self.onPaste).pack(side=LEFT)
Button(frm,text='Find',command=self.onFind).pack(side=LEFT)
Quitter(frm).pack(side=LEFT)
ScrolledText.__init__(self,parent,file=file)
self.text.config(font=('courier',9,'normal'))
def onSave(self):
filename=asksaveasfilename()
if filename:
alltext=self.gettext()
open(filename,'w').write(alltext)
def onCut(self):
text=self.text.get(SEL_FIRST,SEL_LAST)
self.text.delete(SEL_FIRST,SEL_LAST)
self.clipboard_append(text)
def onPaste(self):
try:
text=self.selection_get(selection='CLIPBOARD') # 获取张贴板里边的内容
self.text.insert(INSERT,text) # 在光标方位处刺进张贴板中的内容
except TclError:
pass
def onFind(self):
target=askstring('SimpleEditor','Search String?')
Python3.6完成一个简略的文本编辑器ifPython3.6完成一个简略的文本编辑器 target:
where=self.text.search(target,INSERT,END) # 从光标方位开端到完毕的范围内查找askstring获取到的字符串target的方位
if where:
print(where)
pastit=where+('+%dc'%len(target)) # pastit代表从查找到的target的方位到target字符完毕的方位(即target)
self.text.tag_add(SEL,where,pastit) # 将target地点的字符方位符号(色彩加深,即蓝色选中作用)
self.text.focus()
self.text.see(pastit) # 完结翻滚显现,该句子能够翻滚并显现查找的字符串地点的方位

黏贴作用

编写调用代码:

if __name__=='__main__':
if len(sys.argv)>1:
SimpleEditor(file=sys.argv[1]).mainloop()
else:
SimpleEditor().mainloop()

查找作用

4.修改一个用于测验的文本文件,能Python3.6完成一个简略的文本编辑器够经过python代码快速完结:

f=open('jack.txt','w')
for i in range(250):
f.write('%03d All work and no play makes Jack a dull boy.\n'%i)
f.close()

查找作用

因为调用了sys.argv规范输入,因而能够在CMD窗口中经过指令python scripy.py jack.txt来翻开jack.txt文件,并完结相关测验。

版权所有:洛阳市建设工程咨询有限责任公司 联系人:李经理 电话: 地址:洛阳市洛龙区开元大道219号2幢1-2522、2501、2502、2503、2504、2505室
版权所有 天天爱彩票官方网站 晋ICP备188244585号-3