21

我想用pathlib.

例如,如果您有一个 Path 对象:

import pathlib
path = pathlib.Path("/home/user/to/some/floder/toto.out")

如何更改文件名?并获得一条新路径,例如"/home/user/to/some/folder/other_file.dat"

或者更一般地说,我可以更改该路径的一个或多个元素吗?

我可以得到parts路径:

In [1]: path.parts
Out[1]: ('/', 'home', 'user', 'to', 'some', 'floder', 'toto.out')

因此,一种解决方法是加入所需的部分,创建一个新字符串,然后创建一个新路径,但我想知道是否有更方便的工具可以做到这一点。

编辑

更准确地说,它是否存在与path.name返回路径的互补部分的等价物:str(path).replace(path.name, "")

4

2 回答 2

33

为了总结评论,声明如下:

  1. 为了更改文件名
In [1]: import pathlib

In [2]: path = pathlib.Path("/home/user/to/some/folder/toto.out")

In [3]: path.parent / "other_file.dat"
Out[3]: PosixPath('/home/user/to/some/folder/other_file.dat')

  1. 为了改变路径中的一部分
In [4]: parts = list(path.parts)

In [5]: parts[4] = "other"

In [6]: pathlib.Path(*parts)
Out[6]: PosixPath('/home/user/to/other/folder/toto.out')
于 2018-04-12T13:49:07.147 回答
1

您可以尝试使用str.format可变文件名

前任:

import pathlib
filename = "other_file.dat"    #Variable. 
path = pathlib.Path("/home/user/to/some/floder/{0}".format(filename))
于 2018-04-10T08:04:15.570 回答