如何用python 中with 用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用python 中with 用法相关的知识,希望对你有一定的参考价值。
要使用 with 语句,首先要明白上下文管理器这一概念。有了上下文管理器,with 语句才能工作。下面是一组与上下文管理器和with 语句有关的概念。
上下文管理协议(Context Management Protocol):包含方法 __enter__() 和 __exit__(),支持
该协议的对象要实现这两个方法。
上下文管理器(Context Manager):支持上下文管理协议的对象,这种对象实现了
__enter__() 和 __exit__() 方法。上下文管理器定义执行 with 语句时要建立的运行时上下文,
负责执行 with 语句块上下文中的进入与退出操作。通常使用 with 语句调用上下文管理器,
也可以通过直接调用其方法来使用。
运行时上下文(runtime context):由上下文管理器创建,通过上下文管理器的 __enter__() 和
__exit__() 方法实现,__enter__() 方法在语句体执行之前进入运行时上下文,__exit__() 在
语句体执行完后从运行时上下文退出。with 语句支持运行时上下文这一概念。
上下文表达式(Context Expression):with 语句中跟在关键字 with 之后的表达式,该表达式
要返回一个上下文管理器对象。 参考技术A
在Python中,如果一个对象有__enter__和__exit__方法,就可以在with语句中使用它。
with块结束时会调用相应的__exit__中的代码.因此,我们不需要再写相应的代码去close,无论是因为什么原因结束with.
with open(...) as f:print(f.readall())
等价于:
f = open(...)print(f.readal())
f.close()
同时,我们还可以在一个with 语句中包括多个对象:
...
如果不使用with,考虑到f2可能会打开失败或者后续的操作会出错,我们可以需要这样去写:
try:
f2 = open(...)
...
catch:
pass
else:
f2.close()
f1.close()
如何用python读取arcgis中shapefile文件的属性表
可以用arcpy模块中的SearchCursor读取shp的属性表。Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。
ESRI公司的Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式。
一个Shapefile文件最少包括三个文件:
主文件(*.shp)、--存储地理要素的几何图形的文件。
索引文件(*.shx)、--存储图形要素与属性信息索引的文件。
dBASE表文件(*.dbf),--存储要素信息属性的dBase表文件。
参考技术A 可以,如果arcgis是10版本,可以用arcpy模块中的SearchCursor读取shp的属性表;用python读写excel需要安装pythonWin或者安装comtypes都可以,你可以上网找一下这样的资料。本回答被提问者和网友采纳 参考技术B 如果arcgis是10版本,可以用arcpy模块中的SearchCursor读取shp的属性表
以上是关于如何用python 中with 用法的主要内容,如果未能解决你的问题,请参考以下文章