10

Pythonは、先頭のスラッシュを含む引数より前の引数​​を破棄するため、「ほとんど無意味」と表現されos.path.joinています。これは意図的で文書化された動作であるということはさておき、このように破棄されない、すぐに利用できる関数またはコードパターンはありますか?

を指定するとHOMEPATH=\users\myname、以下はパスの先頭を破棄します

print os.path.join('C:\one', os.environ.get("HOMEPATH"), 'three')

結果:

\Users\myname\three

望ましい:

C:\one\Users\myname\three

これに数回噛まれたので、私が書いたものの先頭のスラッシュに気付くのはかなり得意ですが、この例のように、着信文字列がどのように見えるかわからない場合はどうでしょうか?

4

2 に答える 2

9

たぶん...すべての引数(または2番目以降)でこれを行ったos.environ.get("HOMEPATH").lstrip(os.path.sep)独自のバージョンを作成するのは簡単です。join

于 2013-02-20T20:40:04.893 に答える
5

スラッシュを削除するだけ

path = os.environ.get("HOMEPATH").lstrip(os.path.sep)
os.path.join('C:\one', path, 'three')
于 2013-02-20T20:43:07.743 に答える