1. ホーム
  2. python

[解決済み] Pythonでファイルパスからフォルダパスを抽出するには?

2022-04-25 13:10:14

質問

ファイルのフルパスからフォルダのパスだけを取得したいのですが、どうすればいいですか?

例えば T:\Data\DBDesign\DBDesign_93_v141b.mdb を取得したいのですが、単に T:\Data\DBDesign (を除く)。 \DBDesign_93_v141b.mdb ).

このようなことをやってみました。

existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = str(existGDBPath.split('\\')[0:-1])
print wkspFldr 

が、こんな結果になりました。

['T:', 'Data', 'DBDesign']

というのは、私が要求している結果ではありません(つまり T:\Data\DBDesign ).

ファイルへのパスを取得する方法について、何かアイデアはありますか?

解決方法は?

の使い方で、もう少しでしたね。 split 関数を使用します。あとは、次のように文字列をつなげるだけです。

>>> import os
>>> '\\'.join(existGDBPath.split('\\')[0:-1])
'T:\\Data\\DBDesign'

を使用することをお勧めしますが os.path.dirname 関数を使えば、文字列を渡すだけでよいのです。Windowsをお使いのようですので、このような場合は abspath という関数もあります。例を挙げます。

>>> import os
>>> os.path.dirname(os.path.abspath(existGDBPath))
'T:\\Data\\DBDesign'

分割後のファイル名とディレクトリパスの両方が欲しい場合は os.path.split 関数は,次のようにタプルを返します。

>>> import os
>>> os.path.split(os.path.abspath(existGDBPath))
('T:\\Data\\DBDesign', 'DBDesign_93_v141b.mdb')