2017-10-12 13 views
0

私はかなり新しいPythonで作業しています。私はExcelからPythonに変更しています。優秀になること。私はPython 2.7から取り組んでいます。私はファイルをコピーする方法、および特定の宛先に必要なすべてのファイルをコピーするフォルダを反復する方法を理解しています。しかし、私がやっていることは少し複雑です。ここでサブディレクトリ名が一致する限り、あるディレクトリとサブディレクトリから別のディレクトリにファイルをコピーする

はセットアップです: 2つのディレクトリ:私は何をしようとしているの両方

で2017と2018 300+フォルダ: コピー個別のフォルダからファイル(シェープファイル、.CSVなど)ディレクトリ2017内の同じ名前のフォルダ(存在する場合、存在しないかもしれませんが、それは問題ありません)をディレクトリ2018にコピーします。

私はforループとifステートメントが必要です。それを書く方法を知っている: 両方のディレクトリ2017と2018にフォルダ 'x'が存在する場合は、2018年に2017年のフォルダ 'x'から 'x'にファイル 'y_2017'をコピーします。

私はこれを貧弱なやり方で説明していると確信しています。誰かが助言を持っているなら、私は感謝しています。

+0

答えが正しいと思われる場合は、質問の回答として受け入れてください。 –

答えて

0
import os 
import shutil 

source_folder = "2017" 
target_folder = "2018" 
subfolders = [a for a in os.listdir(source_folder) if os.path.isdir(os.path.join(source_folder, a))] 

for subfolder in subfolders: 
    if os.path.exists(os.path.join(target_folder, subfolder) and os.path.isdir(os.path.join(target_folder, subfolder)): 
     file_names = os.listdir(os.path.join(source_folder, subfolder)) 
     for f in file_names: 
      src_path = os.path.join(source_folder, subfolder, f) 
      tgt_path = os.path.join(target_folder, subfolder, f) 
      shutil.copy(src_path, tgt_path) 
関連する問題