【发布时间】:2021-10-01 08:02:38
【问题描述】:
我的文件路径很长,我需要提取最后 3 个子文件夹。例如,如果我的路径是:
a\b\c\d\e\f\g
那么我只需要最后 3 个文件夹:
e\f\g
我怎样才能做到这一点?
【问题讨论】:
-
'\\'.join(path_name.split("\\")[-3:])? -
谢谢。这行得通
标签: python
我的文件路径很长,我需要提取最后 3 个子文件夹。例如,如果我的路径是:
a\b\c\d\e\f\g
那么我只需要最后 3 个文件夹:
e\f\g
我怎样才能做到这一点?
【问题讨论】:
'\\'.join(path_name.split("\\")[-3:])?
标签: python
处理路径的最佳实践是使用os 和分隔符os.sep 将路径拆分为多个部分。使用 os.sep 而不是 '\' 或 '/',因为这使它独立于系统。
import os
path = r'a\b\c\d\e\f\g'
path = os.path.normpath(path)
path_list = path.split(os.sep)
print(os.sep.join(path_list[-3:]))
打印出来:
e\f\g
【讨论】:
您可以将\中的条款拆分并加入:
'\\'.join(path_name.split("\\")[-3:]
【讨论】:
你可以像这样使用pathlib.PurePath.parts:
import pathlib
p = pathlib.PureWindowsPath(r'a\b\c\d\e\f\g')
parts = p.parts[-3:]
# > ('e', 'f', 'g')
p3 = pathlib.PureWindowsPath(*parts)
print(p3) # -> e\f\g
(我使用的是 Linux,所以我指定了PureWindowsPath。)
【讨论】:
【讨论】: