removing spaces from front and end of filenames

Jeff Epler jepler at unpythonic.net
Sun Jul 13 12:18:50 EDT 2003


On Sun, Jul 13, 2003 at 08:44:05AM -0700, hokiegal99 wrote:
> Erik Max Francis <max at alcyone.com> wrote in message news:<3F10BABB.D548961B at alcyone.com>...
> > hokiegal99 wrote:
> > 
> > > This script works as I expect, except for the last section. I want the
> > > last section to actually remove all spaces from the front and/or end
> > > of
> > > filenames. For example, a file that was named "  test  " would be
> > > renamed "test" (the 2 spaces before and after the filename removed).
> > > Any
> > > suggestions on how to do this?
> > 
> > That's what the .strip method, which is what you're using, does.  If
> > it's not working for you you're doing something else wrong.
> 
> for root, dirs, files in os.walk('/home/rbt/scripts'):
>      for file in files:
>          fname = (file)
>          fname = fname.strip( )
> print fname
> 
> When I print fname, it prints the filenames w/o spaces (a file named "
> test " looks like "test"), but when I ls the actual files in the
> directory they still contain spaces at both ends. That's what I don't
> understand. It seems that .strip is ready to remove the spaces, but
> that it needs one more step to actually do so. Any ideas?

Surely you need to actually rename the file:
    for root, dirs, files in os.walk('/home/rbt/scripts'):
        for name in files:
            newname = name.strip()
            if newname != name: os.rename(name, newname)

Jeff





More information about the Python-list mailing list