Pythonでパスから拡張子を除いたファイル名を取得するには?
拡張子を除いたファイル名の取得。
import os
print(os.path.splitext("/path/to/some/file.txt")[0])
プリントします。
/path/to/some/file
重要なお知らせ:_ファイル名に複数のドットがある場合、最後のドットの後の拡張子だけが削除されます。例えば、以下のようになります。
import os
print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
印刷します。
/path/to/some/file.txt.zip
そのケースを処理する必要がある場合は、以下の他の回答を参照してください。
で作ることができます。
>>> import os
>>> base=os.path.basename('/root/dir/sub/file.ext')
>>> base
'file.ext'
>>> os.path.splitext(base)
('file', '.ext')
>>> os.path.splitext(base)[0]
'file'
重要:ファイル名に複数の.
が含まれている場合、最後のものだけが削除されます。例えば、以下のようになります。
/root/dir/sub/file.ext.zip -> file.ext
/root/dir/sub/file.ext.tar.gz -> file.ext.tar
この問題に関する他の回答は以下を参照してください。