Python 如何使用pathlib从当前路径的一部分创建新的路径对象?
我想用Python 如何使用pathlib从当前路径的一部分创建新的路径对象?,python,pathlib,Python,Pathlib,我想用pathlib更改路径对象的一部分 例如,如果您有一个路径对象: import pathlib path = pathlib.Path("/home/user/to/some/floder/toto.out") 如何更改文件名?并获得一个新路径,例如“/home/user/to/some/folder/other_file.dat” 或者更一般地说,我可以更改该路径的一个或多个元素吗 我可以获得路径的部分: In [1]: path.parts Out[1]: ('/', 'home',
pathlib
更改路径对象的一部分
例如,如果您有一个路径对象:
import pathlib
path = pathlib.Path("/home/user/to/some/floder/toto.out")
如何更改文件名?并获得一个新路径,例如“/home/user/to/some/folder/other_file.dat”
或者更一般地说,我可以更改该路径的一个或多个元素吗
我可以获得路径的部分
:
In [1]: path.parts
Out[1]: ('/', 'home', 'user', 'to', 'some', 'floder', 'toto.out')
因此,一个解决方法是连接所需的部分,创建一个新字符串,然后创建一个新路径,但我想知道是否有更方便的工具来实现这一点
编辑
更准确地说,它是否存在一个等价于返回路径互补部分的
path.name
:str(path).replace(path.name,”)
您可以尝试使用str.format
来获得可变的文件名
Ex:
import pathlib
filename = "other_file.dat" #Variable.
path = pathlib.Path("/home/user/to/some/floder/{0}".format(filename))
为了总结这些意见,声明如下:
:导入路径库
在[2]中:path=pathlib.path(“/home/user/to/some/folder/toto.out”)
在[3]中:path.parent/“other_file.dat”
Out[3]:PosixPath('/home/user/to/some/folder/other_file.dat')
:零件=列表(path.parts)
在[5]中:部分[4]=“其他”
在[6]中:路径库路径(*部分)
Out[6]:PosixPath('/home/user/to/other/folder/toto.Out')
是的,我可以执行类似于str(path).replace(path.name,”)
的操作。但是我想知道在path.name
是否有一个模拟返回互补部分。这里的“互补”是什么意思?您是指家长吗,如在path.parent
?在这种情况下,您可以只执行other_path=path.parent/'other_file.dat'
Yes,这就是我想要更改文件名的原因。是否也有办法更改给定的零件?例如,我路径中的other
中的some
?是。拆分路径,更改所需元素,然后再次连接路径:path\u parts=path.parts;路径_部分[4]=“其他”;path=path(*path\u parts)
谢谢,如果您将parts
转换为list(元组是不可变的)path\u parts=list(path.parts)
。