Okay, here's the code.
I am completely open to suggestions as this is my first dabbling in Tk.
Please look over it when you have time.
I have a couple of questions.
1) How do I change the title of the window?
2) Why does a window pop up saying something like error, the memory could
not be "read". I'm running
Windows XP, the script window disappears, and everything, just this message
pops up.
Jacob Schmidt
----------------------------------------------------------------------------
-
from Tkinter import *
import tkMessageBox
import os
from filecmp import cmpfiles
class Copying:
def __init__(self,action,var,err):
self.action = action
self.pri = var
self.err = err
self.j = os.path.join
self.r = os.path.isdir
self.e = os.path.isfile
####################################################################
# These are the default values for the directories. To make it
simpler you could... ##
## pseudo
## self.usbdrive = remote folder
## self.desktop = localer folder
####################################################################
dirlist = os.listdir("c:\\")
if 'Jacob Laptop' in dirlist:
self.usbdrive = 'E:\\Working Python Programs'
self.desktop = 'C:\\documents and
settings\\jacob\\desktop\\Working Python Programs'
elif 'Home Computer' in dirlist:
self.usbdrive = 'F:\\Working Python Programs'
self.desktop = 'C:\\documents and
settings\\owner\\desktop\\Working Python Programs'
elif 'Sissy Computer' in dirlist:
self.usbdrive = '' ## Need to fill in
self.desktop = '' ## Need to fill in
elif 'Michael Laptop' in dirlist:
self.usbdrive = 'E:\\Working Python Programs'
self.desktop = 'C:\\documents and
settings\\michael\\desktop\\Working Python Programs'
elif 'Office Computer' in dirlist:
self.usbdrive = 'D:\\Working Python Programs'
self.desktop = 'C:\\windows\\desktop\\Working Python Programs'
elif 'School Auction Laptop' in dirlist:
self.usbdrive = '' ## Need to fill in
self.desktop = 'C:\\windows\\desktop\\Working Python Programs'
else:
print 'Hey you need to put a folder in this computer!. '
print '''Folders include:
Jacob Laptop
Home Computer
Sissy Computer
Michael Laptop
Office Computer
School Auction Laptop
'''
folder = raw_input('Which computer is this? ')
folder = "C:\\"+folder
os.mkdir(folder)
self.usbdrive = raw_input('What is the usb drive on this
computer? ')
self.desktop = raw_input('What is the desktop on this computer?
')
# ################################################# #
if not os.path.exists(self.desktop):
os.mkdir(self.desktop)
m = {'receiving':self.receiving,'sending':self.sending}
m[self.action]()
def copyfile(self,src,des):
x = open(src,'rb').read()
y = open(des,'wb')
y.write(x)
y.close()
def receiving(self):
chiplist = os.listdir(self.usbdrive)
pclist = os.listdir(self.desktop)
filechange = cmpfiles(self.usbdrive,self.desktop,chiplist)[1]
tot = 0
for x in chiplist:
if x not in pclist:
filechange.append(x)
for x in filechange:
fullname = self.j(self.usbdrive,x)
if self.e(fullname):
self.copyfile(fullname,self.j(self.desktop, x))
self.pri.set("Copying %s." % x)
self.err.insert(END,"%s copied from chip to computer.\n" %
x)
tot = tot + 1
elif self.r(fullname):
self.err.insert(END,"%s is a directory. It has not been
copied.\n" % fullname)
self.err.insert(END,"%s file(s) copied.\n"%tot)
self.pri.set("")
pclist.sort()
chiplist.sort()
newlist = [x for x in pclist if x not in chiplist]
for x in newlist:
if tkMessageBox.askokcancel('Delete?',"Do you wish to delete %s?
" % x):
filename = self.j(self.desktop, x)
if self.e(filename):
os.remove(filename)
self.err.insert(END,"%s has been removed from your
chip.\n"%x)
elif self.r(filename):
os.rmdir(filename)
self.err.insert(END,"%s has been removed from your
chip.\n"%x)
else:
self.err.insert(END,"Did not remove %s\n"%x)
def sending(self):
pclist = os.listdir(self.desktop)
chiplist = os.listdir(self.usbdrive)
filechange = cmpfiles(self.desktop,self.usbdrive,pclist)[1]
tot = 0
for x in pclist:
if x not in chiplist:
filechange.append(x)
for x in filechange:
fullname = self.j(self.desktop,x)
if self.e(fullname):
self.copyfile(fullname,self.j(self.usbdrive,x))
self.pri.set("Copying %s. " % x)
self.err.insert(END,"%s copied from computer to chip.\n" %
x)
tot = tot + 1
elif self.r(fullname):
self.err.insert(END,"%s is a directory. It has not been
copied.\n" % x)
self.err.insert(END,"%s file(s) copied.\n"%tot)
self.pri.set("")
chiplist.sort()
pclist.sort()
newlist = [x for x in chiplist if x not in pclist]
for x in newlist:
if tkMessageBox.askokcancel('Delete?',"Do you wish to delete %s?
" % x):
filename = self.j(self.usbdrive, x)
if self.e(filename):
os.remove(filename)
self.err.insert(END,"%s has been removed from your
chip.\n"%x)
elif self.r(filename):
os.rmdir(filename)
self.err.insert(END,"%s has been removed from your
chip.\n"%x)
else:
self.err.insert(END,"Did not remove %s\n"%x)
class Application(Frame):
def s(self):
Copying(action='sending',var=self.pri,err=self.error)
def r(self):
Copying(action='receiving',var=self.pri,err=self.error)
def createWidgets(self):
self.QUIT = Button(self)
self.QUIT["text"] = "QUIT"
self.QUIT["fg"] = "red"
self.QUIT["command"] = self.quit
self.QUIT.grid(row=1,column=1)
self.hi_there = Button(self)
self.hi_there["text"] = "Sending",
self.hi_there["command"] = self.s
self.hi_there.grid(row=1,column=2)
self.REC = Button(self)
self.REC['text'] = "Receiving"
self.REC['command'] = self.r
self.REC.grid(row=1,column=3)
self.pri = StringVar()
self.TEXT = Label(self,textvariable=self.pri)
self.TEXT.grid(row=2,column=1,columnspan=3)
self.error = Text(self,fg='blue',height=10)
self.error.grid(row = 3,column = 1,columnspan = 3)
def __init__(self, master=None):
Frame.__init__(self,master)
self.title = "Copying"
self.pack()
self.createWidgets()
app = Application()
app.mainloop()
_______________________________________________
Tutor maillist - [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor