2

重複の可能性:
Python、OS /パス形式に関係なく、パスからファイル名を抽出

私は次のような文字列を持っています:

filename = "C:\\mydata\\yourdata\\Finaldata.txt"
>>> filename
'C:\\mydata\\yourdata\\Finaldata.txt'

パスがどこにあるかわからない場合も、最後の要素を分割して選択したいと思います。私はこれらの行のコードを書きました

from os import path
path.splitext(filename)[0].split("\\")[len(path.splitext(filename)[0].split("\\"))-1]
'Finaldata'

しかし、私はこれを行うためのエレガントな方法があるかどうかを探しています。助けてくれてありがとうジャンニ

4

1 に答える 1

11

次を使用できます。

os.path.basename(aPath)

これにより、最後のコンポーネントだけが得られます。その後、拡張機能を分割する場合は、次を使用します。

os.path.splitext(aBasename)

プラットフォームごとに適切な区切り文字がわかるため、文字列分割の代わりにos.pathを使用すると移植性が向上します。

* nix / osxの場合\\はそうなるので/、ケーステストを行う必要があります。os.pathはあなたのためにそれをすべて理解します。

最後に、/パス文字列のWindowsPythonスクリプトでも有効です。バックスラッシュをエスケープするよりも簡単なので、常にそれらを使用することをお勧めします。

filename = "C:/mydata/yourdata/Finaldata.txt"
于 2012-10-11T16:31:10.743 に答える