python输出文件属性_Python+OGR库学习(一):读取点矢量文件属性值和坐标,并保存为TXT(一行一个要素值)...

代码思路:

1、导入相关库包,切换到当前文件夹

2、注册驱动,打开点矢量文件,获取图层

3、打开待写入TXT文件

4、遍历要素:

(1)获取当前要素‘ID’和‘cover’字段属性

(2)获取当前点要素对应几何对象和其坐标值X,Y

(3)将ID、cover、X、Y写入TXT文件

(4)清除当前feature缓存并获取下一要素

5、清除DataSource并关闭TXT文件

关键点:遍历要素,对每一个要素进行读取同时写入TXT

代码:

#!/usr/bin/env python3

#-*- coding:utf-8 -*-

try:

from osgeo import ogr

except ImportError:

import ogr

import os,sys

#切换路径

os.chdir(r'F:\Python+gdal\7weeks数据\7weeks数据\ospy_data1\ospy_data1')

#注册驱动,打开文件和图层

driver = ogr.GetDriverByName("ESRI Shapefile")

ds = ogr.Open('sites.shp',0)#以只读方式打开矢量文件

if ds ==None:

print("打开文件失败!")

sys.exit(1)

layer = ds.GetLayer()

#为避免不能提前知道shp属性字段,这里读取属性表所有字段

featuredefn = layer.GetLayerDefn()#获取图层属性表定义

fieldcount = featuredefn.GetFieldCount()#获取属性表中字段数

for attr in range(fieldcount):

fielddefn = featuredefn.GetFieldDefn(attr)

print("%s: %s"%(\

fielddefn.GetNameRef(),\

fielddefn.GetFieldTypeName(fielddefn.GetType())))

#layer = ds.GetLayerByIndex(0)

#打开TXT文件

outtxtfile = open('sites.txt','w')#以可写方式打开

#遍历所有要素,开始读取和写入

feature = layer.GetNextFeature()

while feature:

#读取ID、cover字段值

id = feature.GetFieldAsString('id')

cover = feature.GetFieldAsString('cover')

#获取要素几何

geom = feature.GetGeometryRef()

X = str(geom.GetX())#读取xy坐标,转为字符串,方便TXT写入

Y = str(geom.GetY())

#写入TXT文件

outtxtfile.write(id +' ' + cover+' '+ X +' '+ Y +'\n')#这种写入方式如果第二次运行,会覆盖原TXT文件

#清除缓存并获取下一个要素

feature.Destroy()

feature = layer.GetNextFeature()

#清除DataSource缓存并关闭TXT文件

ds.Destroy()

outtxtfile.close()

代码输出

1、字段属性

2、保存TXT

学习使用,如有意见,感谢指正

转载自:https://blog.csdn.net/weixin_42924891/article/details/85269395

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值