将文件从源文件夹复制到不同的目标文件夹

Copying files from source folder to different destination folders

我正在尝试将源列表中指示的文件复制到目标列表中。我只希望 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_West05 - Desert Harvest_16_Asset Management\GroundWorks_Monthly Reports",
            r"G:\MetData\Solar\USA_Central06_Goodranch_Asset Management\Reports",
            r"G:\MetData\Solar\USA_East02_Jackson_Asset Management\GroundWorks_Monthly Reports",
            r"G:\MetData\Solar\USA_Central05_Lodi_Asset Management\Reports",
            r"G:\MetData\Solar\USA_West13_Moapa_Asset Management\Reports",
            r"G:\MetData\Solar\USA_West12_Ponderosa_Asset Management\Groundworks_Monthly Reports",
            r"G:\MetData\Solar\USA_West11_Utah_Solar_One_Asset Management\Reports"]




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

两个 for 会给你完全一样的行为。现在,您将 Sources 中的第一个元素放入 x,然后使用相同的 x 遍历 destinations 中的所有元素并将它们放入 y 并执行复制。因此,如果第一个数组有 5 个元素,第二个 5 以及副本运行 25 次。

相反,您只需要 1 个 for 即可同时从两个数组中取出一个元素,如下所示:

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

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