[pythonアプリケーション] Pythonはファイルを再帰的に検索し、複数のファイルの検索をサポートし、カスタム処理アクションをサポートします

PATH = R&LT ' E:\マイドキュメント\ XXX '   #のディレクトリのアドレスを検索する 
TARGET_PATH = R&LT ' E:\マイドキュメント\新しい市い府ォヒカル間ー\ 1 '  #のコピー検索結果の宛先アドレスへの 
NAME_PATH = R&LT ' 1.TXT '  読み取ることがファイル(同時に複数の検索)を取る 
NAME =を「」 #のための検索 
NAMES = [] カスタム検索、このフィールドに入力が無視されている場合、ファイルからロード 
= 0 READ_FROM_FILE 開いているファイルをからロードされた場合



のインポート、OS
 から shutil インポートCopyFileメソッドの
 クラスの検索():
     DEF  __init__ (セルフ):
        self.names = []
        self.func = None 
        self.once = True
     def  __core (self、path、name):
        
        files = os.listdir(path)
         for file in files:
             if os.path.isdir(os.path.join(path、file) ):
                自己。__core (os.path.join(path、file)、name)
             elif name in file:
                self.func(os.path.join(path、file))
                if self.once:return 
    def searchName(self、path、name、 func、once = True):
        self.func= func 
        self.once = 一度
        セルフ。__core (パス、名)
     デフ searchNames(自己、パス、名前、FUNC、一度= TRUE):
         場合 ではない:(名)lenを
             印刷" 名エラーが発生しました。" の戻り
        self.names = 
        self.func = FUNC 
        自己を。一度 = 一度
         のための名前名前:
            自己。__core (パス、名前)


def func(パス):
    name= path.split(' \\ ' 
    tar = os.path.join(TARGET_PATH、name [-1 ])
    copyfile(path、tar)

def main():
    s = Search()
     s.searchName(PATH、NAME 、FUNC)Falseの
    場合 ではない(NAMESをLEN)READ_FROM_FILE: オープンNAME_PATHと' R '、コード= ' UTF-8 ' :Fなど)
             のためのラインF:
                NAMES.append(line.strip(' \ nは' ))

    s.searchNames(PATH、NAMES、func、False)
main()

 

おすすめ

転載: www.cnblogs.com/remly/p/12738411.html