1. ホーム
  2. python

[解決済み] 指定されたディレクトリ内のファイルを反復処理するにはどうすればよいですか?

2022-03-22 19:03:42

質問

をすべて反復処理する必要があります。 .asm ファイルを作成し、それに対して何らかのアクションを実行します。

どうしたら効率よくできるのでしょうか?

どのように解決するのか?

上記の回答のPython 3.6バージョンで os - を想定して、ディレクトリパスを str という変数に directory_in_str :

import os

directory = os.fsencode(directory_in_str)
    
for file in os.listdir(directory):
     filename = os.fsdecode(file)
     if filename.endswith(".asm") or filename.endswith(".py"): 
         # print(os.path.join(directory, filename))
         continue
     else:
         continue

または再帰的に pathlib :

from pathlib import Path

pathlist = Path(directory_in_str).glob('**/*.asm')
for path in pathlist:
     # because path is object not string
     path_in_str = str(path)
     # print(path_in_str)

  • 使用方法 rglob を置き換えると glob('**/*.asm')rglob('*.asm')
    • を呼び出すようなものです。 Path.glob() '**/' は、与えられた相対パターンの前に追加されます。
from pathlib import Path

pathlist = Path(directory_in_str).rglob('*.asm')
for path in pathlist:
     # because path is object not string
     path_in_str = str(path)
     # print(path_in_str)


オリジナルの回答です。

import os

for filename in os.listdir("/path/to/dir/"):
    if filename.endswith(".asm") or filename.endswith(".py"): 
         # print(os.path.join(directory, filename))
        continue
    else:
        continue