python 小ネタ

python

windowsのpathをlinux向けに変換する

windows向けのパスは\(バックスラッシュ)が用いられるため、linux向けにpathを変換するには/(スラッシュ)に置換する必要がある。ただし、pythonでは\を特殊文字として扱うことが多く、置換するのに苦労したのでまとめます。

他のスクリプトから、もしくは、ファイルを読み込むことで取得したwindows_path\\172.0.0.1\tmp\aaaa\bbbb\ccccで、\\172.0.0.1\tmpがlinux上では/mnt/tmpにマウントされているとします。

まず、マウントのpathに置換します。ここでポイントなのは特殊文字を無視するため、\(バックスラッシュ)の前にrをつけます。

linux_path = windows_path.replace(r'\\172.0.0.1\tmp', '/mnt/tmp')
print(linux_path)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
/mnt/tmp\aaaa\bbbb\cccc

残っている、\(バックスラッシュ)を/(スラッシュ)に置換します。その際、reが必要となるため、importしておいてください。

import re
linux_path = re.sub(r'\\', '/', linux_path)
print(linux_path)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
/mnt/tmp/aaaa/bbbb/cccc

以上、参考になればと思います。

コメント

タイトルとURLをコピーしました