2

関連するすべてのファイルとフォルダーをローカルリポジトリから見つけようとしています。たとえば、プロジェクトを git からローカル マシンにプルし、特定のファイル (.txt) を検索して、同じパターン (ルート->ディレクトリ-> ファイル) で新しいフォルダーに保存したいと考えています。基本的に、名前と拡張子が一致しないが同じ形式を維持するファイルを削除したいと考えています。前もって感謝します。

4

1 に答える 1

0

ディレクトリ ツリーをたどって、必要なファイルを見つけることができます。

import os, fnmatch

def find_files(directory, pattern):
    for root, dirs, files in os.walk(directory):
        for basename in files:
            if fnmatch.fnmatch(basename, pattern):
                filename = os.path.join(root, basename)

                yield filename

def find_files_to_list(directory, pattern):
    file_list = []
    for root, dirs, files in os.walk(directory):
        for basename in files:
            if fnmatch.fnmatch(basename, pattern):
                filename = os.path.join(root, basename)
                file_list.append(filename)

    return file_list

次に、リポジトリをコピーして、次のようにします。

wanted_files = find_files_to_list('/original_project/', '*.html')
for filename in find_files('/copy_project/', '*'):
    if filename not in wanted_files:
        os.remove(filename)
于 2013-08-07T16:32:39.957 に答える