将源文件夹中的文件复制到不同的目标文件夹
问题描述:
我试图将源列表中指示的文件复制到目标列表中。我只希望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
答
两个for
s会给你这种行为。现在,您将Sources
中的第一个元素放到x
,然后用同样的x
遍历目标中的所有元素,并将它们放到y
并执行复制。所以如果第一个阵列有5
元素,第二个5
以及副本运行25
次。
相反,你需要有只有1 for
将采取从两个数组元素的时间,像这样:
for x in range(len(Sources)):
shutil.copy2(Sources[x],Destinations[x])
print ("Program",i,"Complete")
+0
非常感谢Isac工作完美 – skrhee
它不工作?如果不是最新的错误?试着更清楚问题究竟是什么 – Isac
你好@Isac我已经编辑了上述问题以包含当前代码执行方式的描述。希望这是符合你的标准,如果不是,请让我知道我可以如何改善我的问题。 – skrhee