Gabriel Rossetti schrieb: > Hello, > > I wrote a program that reads data from a file and puts it in a string, > the problem is that it loops infinitely and that's not wanted, here is > the code : > > d = repr(f.read(DEFAULT_BUFFER_SIZE)) > while d != "": > file_str.write(d) > d = repr(f.read(DEFAULT_BUFFER_SIZE)) > > I also tried writing the while's condition like so : len(d) > 0, but > that doesn't change anything. I tried step-by-step debugging using > PyDev(eclipse plugin) and I noticed this, once the while was read once, > it is never re-read, basically, the looping does happen, but just in > between the two lines in the loop's body/block, it never goes on the > while and thus never verifies the condition and thus loops forever. I > had been using psyco (a sort of JIT for python) and so I uninstalled it > and restarted eclipse and I still get the same thing. This looks like > some bug, but I may be wrong, does anybody understand what's going on here? > > Thanks, > Gabriel > > PS > And yes I checked, the "d" variable is en empty string at some point, so > the looping should stop.
But you used a superfluous repr. Look at this: >>> repr("") "''" >>> repr("") == "" False >>> So - get rid of the useless repr, then things should work. Regarding the behavior in the debugger: that's an artifact of the debugger that it doesn't step into that line, it doesn't change the way the code works. Diez -- http://mail.python.org/mailman/listinfo/python-list