simple problem with os.rename() parameters - path with spaces

Larry Bates larry.bates at websafe.com
Fri Sep 9 14:04:06 EDT 2005


Are you sure the source directory exists and you
have rights to rename it?  Because the rename works
for me.

But you may want to look at shutil.move and/or
use forward slashes (they work under Windows)

-Larry Bates


Tom wrote:
> I'm having a problem using a path with spaces as a parameter to
> os.rename() in a program on WinXP.
> 
> This works fine at the command line (where the folder "c:\aa bb" exists)
> 
>> os.rename( "c\aa bb", "c:\cc dd" );
>>
> 
> But, I can't get it to work in my program, eg.
> 
> print SrcDir
> print NewDir
> os.rename( SrcDir, NewDir );
> 
> when I run this I get something like this:
> 
> "e:\\music\\Joni Mitchell\\ogg-8"
> "e:\\music.ogg\\Joni Mitchell\\ogg-8"
> 
> Traceback (most recent call last):
>   File "E:\Music\MoveMusic.py", line 64, in ?
>     main();
> ...
>   File "E:\Music\MoveMusic.py", line 49, in Visit
>     os.mkdir( NewDir );
> OSError: [Errno 22] Invalid argument: '"e:\\music.ogg\\Joni
> Mitchell\\ogg-8"'
> 
> I've tried different combinations of single backslash vs. double
> backslash, and quoted vs. non-quoted, but it always fails.
> 
> The problem is not specific to os.rename.  If I instead use mkdir(
> SrcDir ) I get the same problem.
> 
> Thanks,
> Tom.
> 



More information about the Python-list mailing list