【发布时间】:2018-06-21 02:18:10
【问题描述】:
pathlib library 的新 Path 包是从 Python 3.4 添加的,它似乎是os.path.join() 等方法的强大替代品,但我在使用它时遇到了一些麻烦。
我的路径可以是从 folder_foo/file.csv 到 long/path/to/folder_foo/file.csv 的任何路径。我用 pandas 读取了folder_foo 中的 .csv 文件,对其进行了修改并希望将其保存到 folder_bar/file.csv 或 long/path/to/folder_bar/file.csv。
基本上我想在 Path 对象中将 folder_foo 重命名为 folder_bar。
编辑:示例路径代码
csv_path = Path("long/path/to/folder_foo/file.csv")
尝试
1
csv_path.parents[0] = csv_path.parents[0] + "_clean")
这会导致错误TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str',这意味着您不能使用+ 将PosixPath 与str 组合起来,如TypeError: unsupported operand type(s) for +: 'PosixPath' and 'str' 中所述。
2
为了解决这个问题,我尝试了以下方法:
csv_path.parents[0] = Path(str(csv_path.parents[0]) + "_clean")
这会导致错误:TypeError: '_PathParents' object does not support item assignment。
由于PosixPath不是列表,这个错误是可以理解的。
3
也许.parts 是更好的方法,但是
csv_path.parts[-2] = csv_path.parts[-2][:-3] + "bar"
结果:TypeError: 'tuple' object does not support item assignment。
问题
如何轻松重命名文件的父文件夹?
【问题讨论】:
标签: python-3.x pathlib