Behaviour of os.rename()

Tim Golden mail at
Wed Mar 11 15:20:21 CET 2009

venutaurus539 at wrote:
> Hello all,
>             I got a suspicion on the behaviour of os.rename
> (src,dst).If the src is the path of a file and dst is a new filename
> this os.rename() function is infact creating a new file with the dst
> name in the current working directory and leaving the src as it is. Is
> this the expected behavior? If i want the actual source file in its
> orignal location to be renamed without doing os.chdir() to that
> directory, is that possible?
> Ex: if my script contains the following code:
> os.rename("C:\\Folder1\\Folder2\\file1,file2)
>               and my is in the folder D:\. Now if I run this
> script, it is creating file2 in D:\ but I want it in C:
> \Folder1\Folder2. is that possible?
>             When I checked the normal Windows rename function, it is
> working to my expectations but I can't use it because my file is in a
> deep path (>255) which Windows won't support.

os.rename on windows calls the Windows MoveFile API:

Have a look at the details on that page to see what
the limitations / actions are. But remember -- as I've
indicated elsewhere -- to use the ur"\\?\c:\..." form
of the file names.

And let us know if that works :)


More information about the Python-list mailing list