使用python将某些文件复制到另一个文件夹

Adr*_*mah 6 python csv filenames file

我试图只将某些文件从一个文件夹复制到另一个文件夹.文件名位于shapefile的属性表中.

我成功将文件名写入.csv文件并列出包含要传输的文件名列表的列.关于如何读取这些文件名以将它们复制到另一个文件夹,我被困在那之后.我已阅读有关使用Shutil.copy/move但不确定如何使用它的内容.任何帮助表示赞赏.以下是我的脚本:


import arcpy
import csv
import os
import sys
import os.path
import shutil
from collections import defaultdict
fc = 'C:\\work_Data\\Export_Output.shp'
CSVFile = 'C:\\wokk_Data\\Export_Output.csv'
src = 'C:\\UC_Training_Areas'
dst = 'C:\\MOSAIC_Files'

fields = [f.name for f in arcpy.ListFields(fc)]
if f.type <> 'Geometry':
    for i,f in enumerate(fields):

        if f in (['FID', "Area", 'Category', 'SHAPE_Area']):
            fields.remove (f)    

with open(CSVFile, 'w') as f:
f.write(','.join(fields)+'\n') 
with arcpy.da.SearchCursor(fc, fields) as cursor:
    for row in cursor:
        f.write(','.join([str(r) for r in row])+'\n')

f.close()


columns = defaultdict(list) 
with open(CSVFile) as f:
  reader = csv.DictReader(f) 
  for row in reader: 
      for (k,v) in row.items(): 
         columns[k].append(v) 


print(columns['label'])
Run Code Online (Sandbox Code Playgroud)

OYR*_*YRM 3

给定文件名, columns['label']您可以使用以下命令来移动文件

srcpath = os.path.join(src, columns['label'])
dstpath = os.path.join(dst, columns['label'])
shutil.copyfile(srcpath, dstpath)
Run Code Online (Sandbox Code Playgroud)