[Errno 18] Invalid cross-device link using os.rename
Fredrik Lundh
fredrik at pythonware.com
Mon Feb 14 15:58:08 EST 2005
Scott Whitney wrote:
> os.rename(oldName,newName) gives:
>
> OSError: [Errno 18] Invalid cross-device link
>
> mv from the shell works fine.
>
> This is Python 2.2.3 from RedHat 9.0.
>
> Any suggestions (other than os.system('mv %s %s')?)
catch exception and copy if error == errno.EXDEV.
(this is what "mv" does, of course)
or use shutil.move:
>>> import shutil
>>> help(shutil.move)
Help on function move in module shutil:
move(src, dst)
Recursively move a file or directory to another location.
If the destination is on our current filesystem, then simply use
rename. Otherwise, copy src to the dst and then remove src.
A lot more could be done here... A look at a mv.c shows a lot of
the issues this implementation glosses over.
</F>
More information about the Python-list
mailing list