os.walk
だけで完全なファイル名を作成するためにos.path.join()
を使用し、ループの最初の値としてディレクトリへのあなたのパスを与える:
shpfiles = []
for dirpath, subdirs, files in os.walk(path):
for x in files:
if x.endswith(".shp"):
shpfiles.append(os.path.join(dirpath, x))
私はと競合しないようにdirpath
にループ内path
と改名既にos.walk()
に渡していた変数path
結果が.endswith() == True
の場合はテストする必要はありません。 if
は既にあなたのために、== True
の部分は完全に冗長です。
あなたは、もう少しコンパクトに上記のコードを作るために.extend()
とジェネレータ式を使用することができます。
shpfiles = []
for dirpath, subdirs, files in os.walk(path):
shpfiles.extend(os.path.join(dirpath, x) for x in files if x.endswith(".shp"))
か一つでもリストとして理解:
shpfiles = [os.path.join(d, x)
for d, dirs, files in os.walk(path)
for x in files if x.endswith(".shp")]
はあなたの助けをありがとう、私はしたいすべてのJPEGを取得!私は思ったよりも簡単だったと思う。 – Schack