Python 将多个形状文件的属性导出到文本文件
我正在尝试将一个文件夹中包含的多个shapefile的属性导出到一个文本文件中。我编写了下面的代码来实现这一点,但它只是将文件名导出到文本文件中。你知道我做错了什么吗?我已经进行了一段时间的故障排除和研究Python 将多个形状文件的属性导出到文本文件,python,text,arcgis,arcpy,Python,Text,Arcgis,Arcpy,我正在尝试将一个文件夹中包含的多个shapefile的属性导出到一个文本文件中。我编写了下面的代码来实现这一点,但它只是将文件名导出到文本文件中。你知道我做错了什么吗?我已经进行了一段时间的故障排除和研究 import arcpy from arcpy import env arcpy.env.workspace = "C:\\user\\rainfiles" table = "C:\\user\\rain_files" outWorkspace = "C:\\user" fclist = a
import arcpy
from arcpy import env
arcpy.env.workspace = "C:\\user\\rainfiles"
table = "C:\\user\\rain_files"
outWorkspace = "C:\\user"
fclist = arcpy.ListFields(table)
field_names = [field.name for field in fclist]
for field in fclist:
with open(r'C:\\user\\Exports.txt', 'w') as f:
for field in fclist:
f.write(field + '\n')
with open(r'C:\\user\\Exports.txt', 'r') as f:
w = csv.writer(f)
w.writerow(field_names)
for row in arcpy.SearchCursor(table):
field_vals = [row.getValue(field.name) for field in fclist]
w.writerow(field_vals)
del row
这里有一个方法:
import arcpy
import csv
f = open(r'C:\\user\\Exports.txt', 'w')
w = csv.writer(f, lineterminator='\n')
arcpy.env.workspace = "C:\\user\\rainfiles"
shapefileList = arcpy.ListFeatureClasses("*.shp")
for table in shapefileList:
f.write("Shapefile:\n")
f.write(table + "\n")
fieldList = arcpy.ListFields(table)
field_names = [field.name for field in fieldList]
w.writerow(field_names)
for row in arcpy.SearchCursor(table):
field_vals = []
for field in fieldList:
val = row.getValue(field.name)
# See if it's a geometry field; if so, use WKT
try:
val = val.WKT
except AttributeError:
# It's not a geometry, and that's okay
pass
field_vals.append(val)
w.writerow(field_vals)
什么是C:\user\rain\u文件?目录中是否充满了shapefile?如果是这样的话,ListFields对它来说是无效的。应在要素类(如shapefile)上调用ListFields。请编辑您的问题并添加一个您希望看到的输出示例,好吗?我非常困惑,尤其是调用
ListFields
和fclist循环中另一个for-fieldin-fclist
循环中的for-field时。