On 12 April 2010 18:28, Dotan Cohen <dotanco...@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 _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor