Я пытаюсь скопировать только классы объектов, которые я задал, а не копировал их все с помощью цикла if. Я попробовал ниже, и он выполняется, но не копирует файлы.Копирование классов функций в строке
import arcpy
import os
arcpy.env.workspace = r'c:\arcgis\ArcTutor\ModelBuilder\GTKModelbuilder\Data\RFDA Shapefiles'
outWorkspace = r'C:\Output'
fcList = arcpy.ListFeatureClasses()
for shapefile in fcList:
if fcList == ('BedfordCalls.shp','ColleyvilleCalls.shp','HurstCalls.shp','KellersCalls.shp'):
outFeatureClass = os.path.join(outWorkspace,shapefile.strip(".shp"))
arcpy.CopyFeatures_management(shapefile, outFeatureClass)
Существует несколько недостатков логики в этом. Для каждого 'shapefile' в' fcList' вы проверите, включено ли какое-либо из нескольких имен файлового файла в 'fcList', а затем скопировано' shapefile'. Поэтому, если ListFeatureClasses возвращает, говорит 15 классов объектов, и любой из них - «BedfordCalls.shp» или один из других, которые вы включили, он будет запускать «CopyFeatures_management» для всех 15 классов объектов. – DWynne
Кроме того, не нужно снимать расширение .shp с шейп-файла. Функции копирования будут добавлять его обратно в любом случае, потому что вы пишете в папку. – DWynne