在数据库中有要素类列表。下面的代码可以成功打印要素类中每个要素的每个点的x,y。注释部分#不起作用,我不知道如何将点的坐标值写入文本文件。
arcpy.env.workspace = 'database'
fc='file1'
outpath='output Directory'
cursor=arcpy.da.SearchCursor(fc, ["OID@","SHAPE@"])
#output=open("result.txt","w")
for row in cursor: #iterate the rows in the table
print ("Feature {0}: ".format(row[0]))
for point in row[1].getPart(0):
print ("{0},{1}".format(point.X, point.Y))
#output.write(str(point.X)+""+str(point.Y)+"\n")
#read_data = output.read()
#print read_data
#output.close()
感谢任何帮助!
新代码如下:
arcpy.env.workspace = 'database'
fc='file1'
outpath='output Directory'
cursor=arcpy.da.SearchCursor(fc, ["OID@","SHAPE@"])
with open('result.txt', 'w') as output:
for row in cursor: #iterate the rows in the table
for point in row[1].getPart(0):
output.write(str(point.X)+""+str(point.Y)+"\n")
print os.path.isfile('result.txt')
output.close()
答案 0 :(得分:0)
好吧,我用自己的python会话检查了这个,显然写入文件的方法是.close()下班后。取消注释您的代码并写下:
output.close()
......之后。不知何故,更好的处理文件的方法(根据python's documentation)使用with statement:
>>> with open('workfile', 'r') as output:
... read_data = output.read()
>>> output.closed
True
在您的情况下,请在下方编写代码"使用open"在缩进的地方。 希望它有所帮助。
修改强> 上面的声明只是python的文档中的一个例子。 在你的情况下,我建议尝试:
arcpy.env.workspace = 'database'
fc='file1'
cursor=arcpy.da.SearchCursor(fc, ["OID@","SHAPE@"])
with open('result.txt', 'w') as output:
for row in cursor: #iterate the rows in the table
print ("Feature {0}: ".format(row[0]))
for point in row[1].getPart(0):
print ("{0},{1}".format(point.X, point.Y))
output.write(str(point.X)+""+str(point.Y)+"\n")