2017-09-07 39 views
0

私は再帰的にディレクトリに設定された命名体系でファイルを追加したいと思います。再帰的なファイルのコピー

import os 
def all_files(directory): 
for path, dirs, files in os.walk(directory): 
    for f in files: 
     yield os.path.join(path, f) 


xlsm_files = [f for f in all_files('H:\Practice') 
      if f.endswith('.xlsm')] 
print(xlsm_files) 

from shutil import copyfile    
for i in (xlsm_files): 
    copyfile(i,'H:/Practice/Crawler Test/i.xlsm') 

この例では、name1.xlsmとname2.xlsmの2つのファイルがあります。

現在、xlsm_files [1]とxlsm_files [2]を個別に追加してコピーできます。しかし、最終的には100冊のファイルがありたいと思います。リストが成長するにつれて、個人的には執筆は永遠になりますが、私は追いつくことができないかもしれません。

** H:/ Practice/Crawler Test /を読んで、そこにあるファイルを参照して、現在ディレクトリにないファイルのみをクローラが見つけられるようにするには、 。

答えて

0

はまだボーナスに取り組んで、最初の質問への解決策を見つけた

import fnmatch 
import os 
import shutil 
rootPath = 'H:\\Practice\\' 
destDir = 'C:\Users\******\Downloads\Crawler Test' 
matches = [] 
for root, dirnames, filenames in os.walk(rootPath): 
    for filename in fnmatch.filter(filenames, '*.xlsm'): 
     matches.append(os.path.join(root, filename)) 
     a = (os.path.join(root, filename)) 
     print(a) 
     shutil.copy2(a, destDir) 
関連する問題