simple problem with os.rename() parameters - path with spaces
Peter Hansen
peter at engcorp.com
Sun Sep 11 00:19:37 EDT 2005
Tom wrote:
> Peter Hansen wrote:
>> Where do you think those double quotation marks came from? What
>> happens if you try the following instead of using the variables you
>> were trying to use?
>>
>> os.rename("e:\\music\\Joni Mitchell\\ogg-8",
>> "e:\\music.ogg\\Joni Mitchell\\ogg-8")
>>
>> Now try it with this and observe how you get (I predict) the same
>> error message as you originally got, and note what your mistake was:
>>
>> os.rename('"e:\\music\\Joni Mitchell\\ogg-8"',
>> '"e:\\music.ogg\\Joni Mitchell\\ogg-8"')
>
>
> This produced the msg:
> OSError: [Errno 22] Invalid argument
Presumably "this" means the second one, whereas for the first you got a
different message? The latter is clearly invalid, since paths can't
contain quotation marks. The former would work provided the folder
"music.ogg/Joni Mitchell" existed.
> The problem seems to be that I'm trying to create more than one
> directory at a time. In the above example, the dir 'Joni Mitchell'
> doesn't exist.
If that were true, and the only problem, you would get a different
error: OSError: [Errno 2] No such file or directory
> The functions that I'm calling (os.rename and shutil.move) use mkdir,
> not makedirs. The solution is for me to use makedirs with all of the
> path except the leaf before I move/rename the old dir.
Regardless of the issue with error messages, that sounds like it does
explain your problem. Great! :-)
-Peter
More information about the Python-list
mailing list