0

特定の拡張子を持つフォルダー内のすべてのファイルを取得しようとしています。しかし、問題は、そこにいくつのサブディレクトリが存在できるか分からないことです..

基本的に次のようなものです:

                   ------ filex.py
       ---folder1               -------- filezs.py
root             ------- folder2
       --- file.py              ----- fileabc.py
       --- file.txt

等々

したがって、基本的には、次のことを行う関数を書きたいと思います。

 def get_files(root,files_of_type):
  return dict{key = file_name: value = path}

たとえば、すべてのファイルと拡張子 py のパスを取得したい場合

次に、これは次のようになります。

  root = "/path/to/root"
  files_of_type = [".py"]

 returns  {"filex.py": "/path/to/root/folder1".. and so on}

任意の提案ありがとう

4

2 に答える 2

2

でそれを行うことができますos.walk。ディレクトリの各レベルについて、ディレクトリ パス、サブディレクトリ名のリスト、およびそのディレクトリ内のファイル名のリストが表示されます。そこから、辞書を組み立てて返すことができます。

于 2012-12-08T05:49:49.940 に答える
1
import os

def get_files(root, files_of_type):
    rv = {}

    for cwd, folders, files in os.walk(root):
        for fname in files:
            # os.path.splitext splits a filename into a tuple like so:
            # (file_path, extension)
            if os.path.splitext(fname)[1] in files_of_type:
                # key = filename, value = directory of file
                rv[fname] = cwd 

    return rv
于 2012-12-08T05:57:36.853 に答える