如何用python读取arcgis中shapefile文件的属性表?可以输出为excel格式吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用python读取arcgis中shapefile文件的属性表?可以输出为excel格式吗相关的知识,希望对你有一定的参考价值。

参考技术A 可以,如果arcgis是10版本,可以用arcpy模块中的SearchCursor读取shp的属性表;用python读写excel需要安装pythonWin或者安装comtypes都可以,你可以上网找一下这样的资料。 参考技术B 如果你是想基于ArcGIS进行开发,想直接在程序中获取矢量的属性表的话,用arcpy.TableToTable_conversion()(10.2版本,后续版本是否有变化我不太清楚)
只是简单的读取的话,安装python的pandas或者geopandas库,直接read_file()就行了8
输出excel的话可以用xlrd模块;或者pandas里的to_csv()然后手动另存为excel(一般还是存成.csv比较好,毕竟方便python的读取)

如何用python读取文本中指定行的内容

这里写个简单的,用readline即可实现,命令行带入参数1为读取的文件名,参数2为需要读取的行数。需要读取多行,你可以简单改改,例如参数带个列表,程序内用eval转化为数组之类的方法。


import sys
filename = sys.argv[1]
linenum = int(sys.argv[2])

with open(filename , 'r') as f:
    line = f.readline()
    n = 1
    while line:
        if linenum == n:
            print line
            break
        else:
            line = f.readline()
            n += 1

参考技术A # readsomelines.py 
# !/usr/bin/env python3
import sys

fname = 'aa.txt'


def main():
    lines = [i for i in sys.argv[1:] if i.isdigit()]
    with open(fname) as f:
        s = f.read().split('\\n')
    print('file name: , total:  lines.'.format(fname, len(s)))
    for i in lines:
        index = int(i) - 1
        content = s[index] if index < len(s) else ''
        print('line : '.format(i, content)) 


main()

$ python readsomelines.py 2 3

file name: aa.txt, total: 5 lines.

line 2: (comment line)

line 3: (atom symbol) 1 1 1

以上是关于如何用python读取arcgis中shapefile文件的属性表?可以输出为excel格式吗的主要内容,如果未能解决你的问题,请参考以下文章

如何用python读取arcgis中shapefile文件的属性表?可以输出为excel格式吗

如何用arcgis做电子地图

如何用ENVI和ARCGIS切割出图像的制定区域

如何用arcgis制作公里网格

如何用arcgis10.1创建渔网

如何用arcgis合并两个要素?