Never rewrite what is provided to you: `os.path.commonprefix`

does exactly this:

Return the longest path prefix (taken

character-by-character) that is a prefix of all paths in list. If list

is empty, return the empty string (`''`

). Note that this may return

invalid paths because it works a character at a time.

For comparison to the other answers, here’s the code:

```
# Return the longest prefix of all list elements.
def commonprefix(m):
"Given a list of pathnames, returns the longest common leading component"
if not m: return ''
s1 = min(m)
s2 = max(m)
for i, c in enumerate(s1):
if c != s2[i]:
return s1[:i]
return s1
```