首先需要准备好两类数据
一、被裁切的点数据
二、面数据
注意:因arcpy对中文不敏感,最好把两类数据分别保存到路径为英文的文件夹下,且被裁切的点数据和进行裁切的面数据最好不要放在同一个文件夹中,不然遍历时可能会出错,因为都是shp文件。
import arcpy
import glob
import sys
reload(sys)
sys.setdefaultencoding('utf-8') #这里进行编码的强制转化,事实证明用处不大
path = r'E:\shp' #工作路径
arcpy.env.workspace = path
lis = glob.glob(path+"\*.shp") #glob 文件通配符 *.shp 查找该目录下所有shp文件
print(len(lis)) #查看列表长度 看看是否正常索引到该目录
print(lis[1][7:-4]) #字符串切片,以便给输出的文件加名字
in_features =r"\point\stable_Project.shp" #输入文件,即被裁切的点文件
for i in range(0,len(lis)):
clip_features = lis[i] #输入文件,裁切的面文件,这里把列表中的字符串遍历进去,作为路径
prefix=lis[i][7:-4] #字符串切片好的名字做前缀
suffix='.shp' #文件类型做后缀
out_feature_class =prefix+'res'+suffix #输出文件,即裁切好的点文件,名字是原文件名+res+.后缀
arcpy.Clip_analysis(in_features, clip_features, out_feature_class) #用clip工具