2017-03-22 13 views
0

パスをコンポーネントに分割し、各ディレクトリを下から順に処理したいと考えています。サブフォルダの「三角形」へのパスを分割する

path = 'a/b/c/d' 

のために私は何かが仕事で私を助けるために、標準ライブラリにあります

components = [ 
    ('', 'a'), 
    ('a', 'b'), 
    ('a/b', 'c'), 
    ('a/b/c', 'd') 
] 

を取得したいですか?

答えて

0

これはうまくいくと思いますが、うまくいけばエラーが起こりにくいです。

>>> comp = os.path.normpath('a/b/c/d').split(os.sep) 
>>> [(os.path.join(*comp[:i]) if comp[:i] else '', comp[i]) for i in range(len(comp))] 
[('', 'a'), ('a', 'b'), ('a/b', 'c'), ('a/b/c', 'd')] 
+0

インデックスを使用せずに変化: '(ラムダACCを減少させる、×:ACC + [他((os.path.join(* ACC [-1])もしACC '')、X)]、COMP 、[]) ' – 9000

関連する問題