[Tutor] deleting CR within files
David Talaga
dtalaga at novodynamics.com
Sat Apr 17 12:04:40 EDT 2004
Alan and Roger!
I actually found a way to write the file to the other file perfectly. It is
not taking out the <cr> but that is OK for right now. It is just something
more to work on. At least it is not deleting it all the way! Big Step!
Here is what I have:
import os
import Tkinter
import sys
import dialog
root=Tkinter.Tk()
result = 0
def doDialog():
global result
result = dialog.dialog()
f=Tkinter.Button(root, text="Find Files", command=doDialog)
f.pack()
x=Tkinter.Button(root, text="Close", command=sys.exit)
x.pack()
if f:
fileName=dialog.dialog()
in_file = open(fileName,'r').readlines()
out_file = open(fileName + '_cleaned', 'w')
for i in in_file: #Changed the for statement to say in_file (duh!)
out_file.write(i[:-1] + '\n') #maybe the problem is here?
print 'File cleaned'
in_file.close()
out_file.close()
print filename
root.mainloop()
-----Original Message-----
From: Alan Gauld [mailto:alan.gauld at blueyonder.co.uk]
Sent: Friday, April 16, 2004 2:17 PM
To: David Talaga; Roger Merchberger; tutor at python.org
Subject: Re: [Tutor] deleting CR within files
> root=Tkinter.Tk()
> f=Tkinter.Button(root, text="Find Files",
command=dialog.dialog).pack()
> x=Tkinter.Button(root, text="Close", command=sys.exit).pack()
Like another recent poster you are assigning the value of pack()
to the variables. But pack returns None. In this case you don't
use f or x so it doesn't matter but could lead to some strange
things if you tried to use them later...
> if f:
Oops, sorry, you do use f, it will be false since pack() returns
none wich is considered as false.
As a result the block of code inside the if never gets executed.
You need to define the widget then pack it:
f=Tkinter.Button(root, text="Find Files", command=dialog.dialog)
f.pack()
The other problem is that oits not clear how you rtrieve the
output from dialog.dialog. I suspect you need to wrap that in
a local function that stores the value for you:
result = 0
def doDialog()
global result
result = dialog.dialog()
Now pass doDialog into the command parameter and when the
button is pressed the result will be stored in the global
variable result. [ If you were using objects you would make
the doDialog a method and store the result in an attribute
of the class to avoid using a global variable...]
HTH,
Alan G
Author of the Learn to Program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20040417/1387cf79/attachment.html
More information about the Tutor
mailing list