Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ['/abs/path/foo',
- 'rel/path',
- 'just-a-file']
- ['abs', 'rel', 'just-a-file']
- 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']
- 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]
- 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']
- >>> import re
- >>> paths = ['/abs/path/foo',
- ... 'rel/path',
- ... 'just-a-file']
- >>>
- >>> [re.match(r'/?([^/]+)', p).groups()[0] for p in paths]
- ['abs', 'rel', 'just-a-file']
- >>> paths = [r'abspathfoo',
- ... r'relpath',
- ... r'just-a-file',
- ... r'C:abspathfoo',
- ... r'C:relpath',
- ... r'C:just-a-file']
- >>>
- >>> [re.match(r'(?:[A-Za-z]:)?\?([^\]+)', p).groups()[0] for p in paths]
- ['abs', 'rel', 'just-a-file', 'abs', 'rel', 'just-a-file']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement