This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: pathlib.Path.rename moves file to Path.cwd() when argument is a string
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 3.4
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: serhiy.storchaka, yurit
Priority: normal Keywords:

Created on 2015-05-10 01:37 by yurit, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (2)
msg242847 - (view) Author: Yuri Teixeira (yurit) Date: 2015-05-10 01:37
from pathlib import Path
p = Path('/any/folder')
f = p / 'oldname'
f.rename('newname')

The above will rename the file 'oldname' to 'newname' but will also
move it to Path.cwd()

I thought that pathlib.Path.rename() when fed with a string would
change f.name only. I certainly did not expect the file to move. My
hypothesis is that a new Path('newname') is being created and used to
move the file so it that goes to Path.cwd() with the new name but I
don't know anything. Please disregard if this is working as intended.

The docs do not mention this behavior:
https://docs.python.org/3/library/pathlib.html#pathlib.Path.rename

I'm using Python 3.4.3 on Debian testing.
msg290509 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2017-03-26 06:35
This would contradict to all other functions and commands. The current behavior is correct.
History
Date User Action Args
2022-04-11 14:58:16adminsetgithub: 68342
2017-03-26 06:35:27serhiy.storchakasetstatus: open -> closed

nosy: + serhiy.storchaka
messages: + msg290509

resolution: not a bug
stage: resolved
2015-05-10 01:37:48yuritcreate