如何将要素类的坐标值输出到文本文件

时间:2014-11-10 20:12:27

标签: python coordinate arcmap

在数据库中有要素类列表。下面的代码可以成功打印要素类中每个要素的每个点的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()

1 个答案:

答案 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")