あなたがまさにあなたが望むことをするビルトインまたはstdlib関数を探しているなら、何もありません。
サードパーティのライブラリを探している場合は、PyPIとActiveStateを検索してみてください。pathlib(Python 3.4以降に含まれている)、Unipath(forked-path以前のライブラリに基づいており、その修正バージョンは検討されましたが、Python 2に含めることはできませんでした)などのパス操作ライブラリがあります。(または、またはのようなフレームワークを使用している場合は、フレームワークがtwisted組み込まPyQtれている可能性があります。)
このようなライブラリを使用すると、通常、次のように1行でルートパスを取得できます。
pathlib.Path(mypath).parts[0]
Unipath.Path(mypath).split_root()[0]
Unipath.Path(mypath).components()[0]
path.path(mypath).splitall()[0]
それらの「ルート」の定義は、あなたの定義とまったく同じではない可能性があります。(JFセバスティアンが指摘しているように、「ルート」の定義が実際には正確にわからないため、一致するかどうかを推測するのは困難です…)したがって、この種のコードが必要になる場合があります。
components = path.path(mypath).splitall()[0]
return components[0] if len(components[0]) > 1 else components[0]/components[1]
ただし、それでも、正規表現や文字列操作を行うよりはましです。
(実際、サードパーティのライブラリを使用しないos.path場合でも、文字列関数ではなく関数からすべてを構築するようにしてください。そうすれば、来年Windowsで試してみると、うまくいく可能性が高くなります。箱から出して動作します。そうでない場合は、動作しないことが絶対に保証されているのではなく、おそらく小さな変更のみが必要であり、完全な書き換えが必要になる可能性があります。)