从完整文件路径提取文件名及其父目录的Pythonic方法?

从完整文件路径提取文件名及其父目录的Pythonic方法?,python,path,directory,Python,Path,Directory,我们有文件的完整路径: /dir1/dir2/dir3/sample_file.tgz 基本上,我想以以下字符串结束: dir3/sample_file.tgz 我们可以用regex或.split(“/”来解决这个问题,然后将列表中的最后两项合并在一起……但是我想知道我们是否可以用os.path.dirname()或类似的东西来解决这个问题 import os full_filename = "/path/to/file.txt" fname = os.path.basename(full_

我们有文件的完整路径:

/dir1/dir2/dir3/sample_file.tgz
基本上,我想以以下字符串结束:

dir3/sample_file.tgz
我们可以用
regex
.split(“/”
来解决这个问题,然后将列表中的最后两项合并在一起……但是我想知道我们是否可以用
os.path.dirname()
或类似的东西来解决这个问题

import os
full_filename = "/path/to/file.txt"
fname = os.path.basename(full_filename)
onedir = os.path.join(os.path.basename(os.path.dirname(full_filename)), os.path.basename(full_filename))
从来没有人说os.path使用起来很好,但不管平台如何,它都应该做正确的事情

如果您使用的是python3.4(大概是更高版本),则会有一个
pathlib

import os
import pathlib
p = pathlib.Path("/foo/bar/baz/txt")
onedir = os.path.join(*p.parts[-2:])

如果一直将其保存在pathlib中,则更好:
onedir=pathlib.Path(*p.parts[-2:])