将文件从源文件夹复制到不同的目标文件夹
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")
我正在尝试将源列表中指示的文件复制到目标列表中。我只希望 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")