python中路径的第一个元素

5 python portability path

我得到了一个路径列表,我需要以便携方式提取每个路径的第一个元素,我该怎么做?

['/abs/path/foo',
 'rel/path',
 'just-a-file']
Run Code Online (Sandbox Code Playgroud)

['abs', 'rel', 'just-a-file']
Run Code Online (Sandbox Code Playgroud)

在此先感谢Oli

unu*_*tbu 6

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']
Run Code Online (Sandbox Code Playgroud)

  • 如果你想摆脱驱动器,事先在每个路径上调用`os.path.splitdrive(p)[1]`.(顺便说一句,你从来没有在原帖中指出你想要的驱动器字母.不要指望我们读你的想法.) (8认同)
  • 那不是可移植的,请考虑类似“ C:\ Users \ foo”的路径,该路径应导致“ Users”,但是使用您的解决方案就不会了。 (2认同)