2012-05-10 2 views
4

あるファイルのパスがあるとしたら、'C:\Folder\OtherFolder\AnotherFolder\file.txt'と言うと、pythonには道があるのですか?'OtherFolder'までfile.txtのすべての親ディレクトリを取得できますか?パスの深さは一定ではないので、一定回数だけ戻すことはできませんが、深度に関係なく常に'OtherFolder'になる必要があります。私はそれが私が作っているよりも簡単になるはずだと思うが、彼らは木曜日が新しい月曜日だと言う。ファイルの親ディレクトリをポイントまで取得する

rel_path.split(os.path.sep) 

個別のディレクトリを取得する:あなたはその後、(あなたのケース\で)os.path.sepを使用して、それを分割することができ

import os 
os.path.relpath('C:\Folder\OtherFolder\AnotherFolder\file.txt', 'C:\Folder\OtherFolder') 

:Windowsを使用している

答えて

7

:)場合は、これを試してみてください。

Linuxマシン上で同様の呼び出しは、あなたが何を意味するかを返します。これは私が探していたまさにです

os.path.relpath('/Folder/OtherFolder/AnotherFolder/file.txt', '/Folder/OtherFolder') 
# returns 'AnotherFolder/file.txt' 

rel_path.split(os.path.sep) 
# returns ['AnotherFolder', 'file.txt'] 
+1

グレート、。ありがとう! –

関連する問題