来自 pathlib library 的新路径包,它是从 Python 3.4 添加的,似乎是 os.path.join()
等方法的强大替代品。 ,但我在使用它时遇到了一些麻烦。
我的路径可以是 folder_foo/file.csv
中的任何内容至long/path/to/folder_foo/file.csv
.我在 folder_foo
中阅读了 .csv 文件使用 pandas,修改它并希望将其保存到 folder_bar/file.csv
或 long/path/to/folder_bar/file.csv
.
本质上我想重命名 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
.问题
如何轻松重命名文件的父文件夹?
最佳答案
为了可读性,宁愿把它分开:
bar_folder = csv_path.parent.parent / 'folder_bar'
csv_path2 = bar_folder / csv_path.name
将目标文件夹作为变量还可以让您创建文件夹,例如:
bar_folder.mkdir(exist_ok=True)
关于python-3.x - Python 3.6 pathlib 路径改名父目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50959420/