New submission from Laurent Mazuel:

Trying to use Pathlib and Path.replace on Windows if drive are different leads 
to an issue:

  File "D:\myscript.py", line 184, in update
    client_generated_path.replace(destination_folder)
  File "c:\program files (x86)\python35-32\Lib\pathlib.py", line 1273, in 
replace
    self._accessor.replace(self, target)
  File "c:\program files (x86)\python35-32\Lib\pathlib.py", line 377, in wrapped
    return strfunc(str(pathobjA), str(pathobjB), *args)
OSError: [WinError 17] The system cannot move the file to a different disk 
drive: 'C:\\MyFolder' -> 'D:\\MyFolderNewName'

This is a known situation of os.rename, and workaround I found is to use shutil 
or to copy/delete manually in two steps (e.g. 
http://stackoverflow.com/questions/21116510/python-oserror-winerror-17-the-system-cannot-move-the-file-to-a-different-d)

When using Pathlib, it's not that easy to workaround using shutil (even if 
thanks to Brett Cannon now shutil accepts Path in Py3.6, not everybody has 
Py3.6). At least this should be documented with a recommendation for that 
situation. I love Pathlib and it's too bad my code becomes complicated when it 
was so simple :(

----------
components: IO, Windows
messages: 289549
nosy: Laurent.Mazuel, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: Pathlib.replace cannot move file to a different drive on Windows if 
filename different
versions: Python 3.5, Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29805>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to