2017-08-11 14 views
0

[送信元]リストに示されたファイルをコピー先のリストにコピーしようとしています。私はSource [1]がDestination [1]に行き、Source [2]がDestination [2]に移動するなどしたいだけです。ソースフォルダから異なるコピー先フォルダにファイルをコピーする

現在、プログラムはすべてのソースリストファイルを最初のソースファイルの代わりにすべてのデスティネーションフォルダに最初のデスティネーションフォルダにコピーします。

ありがとうございました!

import os 
import shutil 
import glob 


#Move Program 

Sources = [r"C:\Users\simon.rhee\Desktop\Met 201707\GR_MonthlySummary_EDF_DesertHarvest_2017-07.pdf", 
     r"C:\Users\simon.rhee\Desktop\Met 201707\GR_MonthlySummary_EDF_Goodranch_2017-07.pdf", 
     r"C:\Users\simon.rhee\Desktop\Met 201707\GR_MonthlySummary_EDF_Jackson_2017-07.pdf", 
     r"C:\Users\simon.rhee\Desktop\Met 201707\GR_MonthlySummary_EDF_Lodi_2017-07.pdf", 
     r"C:\Users\simon.rhee\Desktop\Met 201707\GR_MonthlySummary_EDF_Moapa_2017-07.pdf", 
     r"C:\Users\simon.rhee\Desktop\Met 201707\GR_MonthlySummary_EDF_Ponderosa_2017-07.pdf", 
     r"C:\Users\simon.rhee\Desktop\Met 201707\GR_MonthlySummary_EDF_UtahSolar1_2017-07.pdf"] 



Destinations = [r"G:\MetData\Solar\USA_West\7005 - Desert Harvest_16\1_Asset Management\GroundWorks\1_Monthly Reports", 
      r"G:\MetData\Solar\USA_Central\4006_Goodranch\1_Asset Management\Reports", 
      r"G:\MetData\Solar\USA_East\8002_Jackson\1_Asset Management\GroundWorks\1_Monthly Reports", 
      r"G:\MetData\Solar\USA_Central\4005_Lodi\1_Asset Management\Reports", 
      r"G:\MetData\Solar\USA_West\7013_Moapa\1_Asset Management\Reports", 
      r"G:\MetData\Solar\USA_West\7012_Ponderosa\1_Asset Management\Groundworks\1_Monthly Reports", 
      r"G:\MetData\Solar\USA_West\7011_Utah_Solar_One\1_Asset Management\Reports"] 




i = 1 
for x in Sources: 
    for y in Destinations: 
     shutil.copy2(x,y) 
     print ("Program",i,"Complete") 
     i += 1 
+0

それは動作しません:

は、代わりにあなたは、一度に両方の配列から要素を取るので、好きになるだけ1 forを持っている必要がありますか?エラーが何もない場合は?問題が正確に何であるかを明確にしてください。 – Isac

+0

Hello @Isac上記の質問を編集して、コードの現在の実行方法の説明を追加しました。うまくいけば、これはあなたの基準に基づいており、それが私の質問を改善する方法を教えてください。 – skrhee

答えて

1

2つのforは、その動作を正確に示します。今のように、Sourcesの最初の要素をとり、xに入れて、それと同じxで宛先のすべての要素を繰り返して、それらをyに入れてコピーを実行します。したがって、最初の配列が5の要素を持ち、2番目の配列が5の場合、コピーは25回実行されます。

for x in range(len(Sources)): 
    shutil.copy2(Sources[x],Destinations[x]) 

print ("Program",i,"Complete") 
+0

ありがとうIsacは完璧に働いてくれてありがとう – skrhee

関連する問題