Здравствуйте!
Мои знакомые попросили помочь им в написании простого текстового редактора (надо для сдачи зачета). Но, к сожалению, они затянули и надо сдавать буквально в четверг на этой неделе (((. Нужно в приведенный ниже исходник добавить функции удаления, вырезки, копирования и вставки фрагмента текста:

from Tkinter import *
from ScrolledText import *
import tkMessageBox
from tkFileDialog import *
import fileinput

tl=
root=None

# Функция выхода из редактора

def die():
sys.exit(0)


def about():
tkMessageBox.showinfo("Текстовый редактор", \
"Версия 1.0\n"\)
def neweditor():
global root
tl.append(editor(root))

class editor:
def __init__(self, rt):
if rt==None:
self.t=Tk()
else:
self.t=Toplevel(rt)
self.t.title("Tkeditor %d" % len(tl))
self.bar = Menu(rt)

# меню работы с файлами
self.filem = Menu(self.bar)
self.filem.add_command(label="Open...",\
command=self.openfile)
self.filem.add_command(label="New...",\
command=neweditor)
self.filem.add_command(label="Save as...",\
command=self.savefileas)
self.filem.add_command(label="Close",\
command=self.close)
self.filem.add_separator()
self.filem.add_command(label="Exit", command=die)

# меню редактирования текста
self.editm = Menu(self.bar)
self.editm.add_command(label="Del...")
self.editm.add_command(label="Cut...")
self.editm.add_command(label="Сopy...")
self.editm.add_command(label="Paste...")

# меню о программе
self.helpm = Menu(self.bar)
self.helpm.add_command(label="About", command=about)

self.bar.add_cascade(label="File", menu=self.filem)
self.bar.add_cascade(label="Edit", menu=self.editm)
self.bar.add_cascade(label="Help", menu=self.helpm)
self.t.config(menu=self.bar)

self.f = Frame(self.t,width=512)
self.f.pack(expand=1, fill=BOTH)

self.st = ScrolledText(self.f,background="white")
self.st.pack(side=LEFT, fill=BOTH, expand=1)

# функция закрытия
def close(self):
self.t.destroy()

# функция открытия файла
def openfile(self):
pl=END
oname = askopenfilename()
if oname:
for line in fileinput.input(oname):
self.st.insert(pl,line)
self.t.title(oname)

# функция удаления фрагмента

# функция cut фрагмента

# функция paste фрагмента

# функция copy фрагмента

# функция сохранить как...
def savefileas(self):
sname=asksaveasfilename(filetypes=)
if sname:
ofp=open(sname,"w")
ofp.write(self.st.get(1.0,END))
ofp.flush()
ofp.close()
self.t.title(sname)

if __name__=="__main__":
root=None
tl.append(editor(root))
root=tl.t
root.mainloop()

Помогите, пожалуйста, а то я просто никогда не сталкивался с этим языком и времени на освоение практически не осталось. Очень не хотелось бы их подводить (светит отчисление).

Заранее благодарен.
Тут не столько Питон, сколко Tk.

def __init__(self, rt):
self.buffer='' # буфер обмена
...

...
self.editm.add_command(label="Del...", command=self.txdel)
self.editm.add_command(label="Cut...", command=self.txcut)
self.editm.add_command(label="Copy...", command=self.txcopy)
self.editm.add_command(label="Paste...", command=self.txpaste)
...

...
# Диапазон выделенного текста
def getsel(self):
ids=self.st.tag_ranges('sel')
if ids:
return ids
else:
return (None,None)

# Содержимое буфера обмена
def getbuf(self):
return self.buffer

# Заполнить буфер обмена
def setbuf(self,text):
self.buffer=text

# функция удаления фрагмента
def txdel(self):
tbeg,tend=self.getsel()
if tbeg:
self.st.delete(tbeg,tend)

# функция cut фрагмента
def txcut(self):
tbeg,tend=self.getsel()
if tbeg:
self.setbuf(self.st.get(tbeg,tend))
self.st.delete(tbeg,tend)

# функция paste фрагмента
def txpaste(self):
tbeg,tend=self.getsel()
if tbeg:
self.st.delete(tbeg,tend)
self.st.insert('insert',self.getbuf())

# функция copy фрагмента
def txcopy(self):
tbeg,tend=self.getsel()
if tbeg:
self.setbuf(self.st.get(tbeg,tend))
self.st.tag_remove('sel',tbeg,tend)
...

Если надо обеспечить работу с системным буфером обмена, то getbuf и setbuf надо будет заменить, но это отдельная тема.