特定のディレクトリ内のファイルを反復処理するにはどうすればいいですか? 質問する

特定のディレクトリ内のファイルを反復処理するにはどうすればいいですか? 質問する

.asm特定のディレクトリ内のすべてのファイルを反復処理し、それらに対して何らかのアクションを実行する必要があります。

これを効率的に行うにはどうすればよいでしょうか?

ベストアンサー1

上記の回答の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

おすすめ記事