2016-10-03 24 views
0

pathlib.Pathジェネレータを追加することは可能ですか、またはPathの2つを組み合わせることはできますか?あなたが得られます。この試みではパスへのパスの追加

from pathlib import Path 
paths = Path('folder_with_pdfs').glob('**/*.pdf') 
paths.append(Path('folder_with_xlss').glob('**/*.xls')) 

AttributeError: 'generator' object has no attribute 'append' 

答えて

1

Path.globは、nextappend INGが何であるか絶対にないアイデアを持っていないこれが呼び出されたときの値を返します。すなわち、オブジェクトをgeneratorを返すためです。

リストが必要な場合は、ここでは2つのオプションがありlist呼び出しでパスをラップ:(。extendはあなたがここに後にしているおそらく何であっても)

paths = list(Path('folder_with_pdfs').glob('**/*.pdf')) 
paths.append(list(Path('folder_with_xlss').glob('**/*.xls'))) 

これはもちろん、ジェネレータの目的に反します。

だから、私はchainのようなものを使用して、一度に彼らから1をそれらと歩留まりを結合しますジェネレータを作成することをお勧めしたい:ダウンメモリフットプリントを維持しながら、必要に応じて

from itertools import chain 

p1 = Path('folder_with_pdfs').glob('**/*.pdf') 
p2 = Path('folder_with_xlss').glob('**/*.xls') 
paths = chain(p1, p2) 

はその後pathsを反復処理。

関連する問題