removing spaces from front and end of filenames
Bengt Richter
bokr at oz.net
Sun Jul 13 20:38:56 EDT 2003
On 13 Jul 2003 09:43:46 -0700, hokiegal99 at hotmail.com (hokiegal99) wrote:
>Ha!!
>
>Fixed it with this bit of code:
>
>for root, dirs, files in os.walk('/home/BradTill/python'):
> for file in files:
> fname = (file)
> fname = fname.strip( )
> newfile = fname
> if newfile:
for fname in files:
newfile = fname.strip()
if newfile!=fname:
> newpath = os.path.join(root,newfile)
> oldpath = os.path.join(root,file)
> os.rename(oldpath,newpath)
> print oldpath
> print newpath
>
I'd suggest using four spaces instead of tabs ;-)
Why not do the whole thing in one loop? (Ignore my prev post suggestion for final
renaming loop just for spaces):
#XXX# untested !!
import re, os
percent2f_n_bad = re.compile(r'%2f|[*?<>/|\\]') # look for bad chars too
for root, dirs, files in os.walk('/home/rbt/scripts'):
for fname in files:
newfile = percent2f_n_bad.sub('-', fname)
newfile.strip() # and the space thing
if newfile != fname: # you really only need to know if something changed, right?
newpath = os.path.join(root,newfile)
oldpath = os.path.join(root,fname)
os.rename(oldpath,newpath)
print `oldpath` # backticks to get quoted repr, to see spaces
print `newpath`
Or am I missing something?
Regards,
Bengt Richter
More information about the Python-list
mailing list