Python中路径的第一个元素
我有一堆路径,我想以一种通用的方式提取每个路径的第一个元素,我该怎么做呢?
['/abs/path/foo',
'rel/path',
'just-a-file']
到
['abs', 'rel', 'just-a-file']
提前谢谢你们!
4 个回答
2
使用更新的pathlib方法...
import PurePath from pathlib
import os
# Separates the paths into parts and prints to the console...
def print_path_parts(path: str):
path = PurePath(path)
parts = list(path.parts)
# From your description, looks like you don't want the root.
# Pop it off.
if parts[0] == os.sep:
parts.pop(0)
print(parts)
# Array of path strings...
paths = ['/abs/path/foo',
'rel/path',
'just-a-file']
# For each path, print parts to the console
for path in paths:
print_path_parts(path)
输出结果:
['abs', 'path', 'foo']
['rel', 'path']
['just-a-file']
2
有一个库可以处理路径的分割,这个方法在不同的平台上都能用,但它只把路径分成两部分:
import os.path
def paths(p) :
head,tail = os.path.split(p)
components = []
while len(tail)>0:
components.insert(0,tail)
head,tail = os.path.split(head)
return components
for p in ['/abs/path/foo','rel/path','just-a-file'] :
print paths(p)[0]
7
In [69]: import os
In [70]: paths
Out[70]: ['/abs/path/foo', 'rel/path', 'just-a-file']
In [71]: [next(part for part in path.split(os.path.sep) if part) for path in paths]
Out[71]: ['abs', 'rel', 'just-a-file']
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。