現在のディレクトリ内のファイルのみを一覧表示する [重複] 質問する

現在のディレクトリ内のファイルのみを一覧表示する [重複] 質問する

Python では、現在のディレクトリにあるすべてのファイルのみを一覧表示したいです。サブディレクトリや親ディレクトリのファイルは一覧表示したくありません。

似たような解決策は他にもあるようですが、私の環境ではうまく機能しないようです。以下は私のコード スニペットです。

import os
for subdir, dirs, files in os.walk('./'):
    for file in files:
      do some stuff
      print file

現在のディレクトリ内に holygrail.py と Tim という 2 つのファイルがあるとします。フォルダーもあり、その中に 2 つのファイル (Arthur と Lancelot と呼ぶことにします) が含まれています。スクリプトを実行すると、次のようになります。

holygrail.py
Tim
Arthur
Lancelot

holygrail.py と Tim には満足しています。しかし、Arthur と Lancelot の 2 つのファイルはリストに含めたくありません。

ベストアンサー1

ただ使うだけos.listdirそしてos.path.isfileの代わりにos.walk

例:

import os
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
    # do something

しかし、これを他のディレクトリに適用する場合は注意が必要です。

files = [f for f in os.listdir(somedir) if os.path.isfile(f)]

fこれは完全なパスではなく、現在のディレクトリに対する相対パスであるため機能しません。

したがって、別のディレクトリでフィルタリングするには、os.path.isfile(os.path.join(somedir, f))

(ありがとう因果関係ヒントについては

おすすめ記事