[Tutor] Move all files to top-level directory
Sander Sweers
sander.sweers at gmail.com
Mon Apr 12 19:12:32 CEST 2010
On 12 April 2010 18:28, Dotan Cohen <dotancohen at gmail.com> wrote:
> However, it fails like this:
> $ ./moveUp.py
> Traceback (most recent call last):
> File "./moveUp.py", line 8, in <module>
> os.rename(f, currentDir)
> TypeError: coercing to Unicode: need string or buffer, tuple found
os.rename needs the oldname and the new name of the file. os.walk
returns a tuple with 3 values and it errors out.
Also os.getcwd returns the working dir so if you run it in the wrong
folder you will end up with a mess. In idle on my windows machine at
work this is what is gives me.
>>> os.getcwd()
'C:\\Python26'
So it is better to give the program the path you want it to look in
rather then relying on os.getcwd().
os.walk returns you a tuple with the following values:
(the root folder, the folders in the root, the files in the root folder).
You can use tuple unpacking to split each one in separate values for
your loop. Like:
for root, folder, files in os.walk('your path):
#do stuff
It might be wise to only have this module print what it would do
instead of doing the actual move/rename so you can work out the bugs
first before it destroys your data.
Hope this helps.
Greets
Sander
More information about the Tutor
mailing list