rtilley wrote: > Roel Schroeven wrote: > > rtilley schreef: > > > >> This will at least allow me to ID folders that start with > >> whitespace... from within Windows too :) yet I still cannot rename the > >> folders after stripping the whitespace... attempting to gives an > >> [Errno 2] No such file or directory. The strip seems to work right too > >> according to the prints before and after. > > > > > > Does the rename work if try with other names? > > Yes, the script can rename files that have no end whitespace. Also, I > should note the the Windows GUI cannot rename the files. Same error... > cannot stat the file. The only way I've been able to rename is through > the cmd prompt using quotes like this: > > ren " bad file with end spaces " good_file_no_end_spaces > > I should also note that the code I posted earlier is misleading as > os.listdir() gets dirs and files... not just dirs as I implied. Here's a > better example that should get whitespace at either end (and does indeed > on Mac and Unix... but not Windows)
It works for me. And although you can't put leading spaces in file names using Windows explorer, you don't have to use command line rename. I modified your program to also put leading spaces back in. It works fine also. See sample run at end of code. <original code snipped> <replaced with my version> import os import os.path import string # dirs is actually files and folders, not just folders. dirs = os.listdir(os.getcwd()) path = os.getcwd() print path for d in dirs: # If folder name begins with whitespace. if d[0] in string.whitespace: print d try: new_path = os.path.join(path, d.strip()) old_path = os.path.join(path, d) print new_path print old_path os.renames(old_path, new_path) except Exception, e: print e # If folder name ends with whitespace. elif d[-1] in string.whitespace: print d try: new_path = os.path.join(path, d.strip()) old_path = os.path.join(path, d) print new_path print old_path os.renames(old_path, new_path) except Exception, e: print e # Folder name is OK, so put spaces back in. else: if d[0] in '123': try: new_path = os.path.join(path, ' '*int(d[0])+d) old_path = os.path.join(path, d) print new_path print old_path os.renames(old_path, new_path) except Exception, e: print e """ D:\wstest>dir Volume in drive D is VOL_LOG1 Volume Serial Number is CCB3-C62B Directory of D:\wstest 02/27/2006 07:38p <DIR> . 02/27/2006 07:38p <DIR> .. 02/27/2006 07:03p 1,052 3 02/27/2006 07:03p 1,052 2 02/27/2006 07:03p 1,052 1 02/27/2006 07:37p 1,344 wstest.py 4 File(s) 4,500 bytes 2 Dir(s) 1,007,540,736 bytes free D:\wstest>C:\Python24\python.exe wstest.py D:\wstest 3 D:\wstest\3 D:\wstest\ 3 2 D:\wstest\2 D:\wstest\ 2 1 D:\wstest\1 D:\wstest\ 1 D:\wstest>dir Volume in drive D is VOL_LOG1 Volume Serial Number is CCB3-C62B Directory of D:\wstest 02/27/2006 07:38p <DIR> . 02/27/2006 07:38p <DIR> .. 02/27/2006 07:03p 1,052 1 02/27/2006 07:03p 1,052 2 02/27/2006 07:03p 1,052 3 02/27/2006 07:37p 1,344 wstest.py 4 File(s) 4,500 bytes 2 Dir(s) 1,007,540,736 bytes free D:\wstest>C:\Python24\python.exe wstest.py D:\wstest D:\wstest\ 1 D:\wstest\1 D:\wstest\ 2 D:\wstest\2 D:\wstest\ 3 D:\wstest\3 D:\wstest>dir Volume in drive D is VOL_LOG1 Volume Serial Number is CCB3-C62B Directory of D:\wstest 02/27/2006 07:40p <DIR> . 02/27/2006 07:40p <DIR> .. 02/27/2006 07:03p 1,052 3 02/27/2006 07:03p 1,052 2 02/27/2006 07:03p 1,052 1 02/27/2006 07:37p 1,344 wstest.py 4 File(s) 4,500 bytes 2 Dir(s) 1,007,540,736 bytes free """ -- http://mail.python.org/mailman/listinfo/python-list