这次我们又来学习一下arcgis的python脚本开发。
今天我们要学习的这个例子是利用arcpy读取某一工作空间下面的所有shapefile数据,然后将读到的矢量shapefile数据一些信息,写入到txt文件中。在这里使用了,arcpy.ListFeatureClasses函数来获取目录下所有的要素类。arcpy.Describe获取文件的描述信息,这里为什么不指定shapefile,是因为,这个函数也可以用于对其他类型的文件。然后相应的借助描述信息来获取shapeType,即图形类型。以及spatialReference.type空间参考类型。当然还有老生常谈的GetCount_management(x)函数,那就是获取记录数了。好了,最后将这些信息写入到txt文件中。那么来看一下最后的实现代码。是不是感觉太low了。
# encoding: utf-8
import arcpy
arcpy.env.workspace = r"D:\Data\中国国界和省界的SHP格式数据\省界"
inpath = 'D:\\Data\\中国国界和省界的SHP格式数据\\省界\\test.txt'
uipath = unicode(inpath, "utf8")
outFile = open(uipath, "w")
fList = arcpy.ListFeatureClasses()
fList.sort(reverse=False)
for x in fList:
desc = arcpy.Describe(x)
sList = desc.shapeType
cList = arcpy.GetCount_management(x)
pList = desc.spatialReference.type
if pList == 'Geographic':
print "{0} 要素类是 {1} 类型,其中有的条记录. 所有记录是地理坐标".format(x,sList.lower())
outFile.write(
"{0} 要素类是 {1} 类型,其中有的条记录. 所有记录是地理坐标.\n".format(x,sList.lower()))
else:
print "{0} 要素类是 {1} 类型,其中有的条记录. 所有记录是投影坐标.".format(x, sList.lower(), cList,
str(pList))
outFile.write("{0} 要素类是 {1} 类型,其中有的条记录. 所有记录是投影坐标.\n".format(x, sList.lower()))
print "EOF\n"
不过在写代码的时候,读取txt文件遇到了如下的错误。因为笔者使用中文路径,致使出现如下的问题,需要按照上面的代码中做相应的调整,才能正确的写入到txt文件中。
那么,我们来看一下最后的写入结果。
更多内容,请微信扫二维码关注公众号,或者加入arcpy开发qq学习群:487352121