python3.7怎么使用arcpy_从Python到空间分析Arcpy|1.3.7 神啊!救救我之如何处理报错...

今天讲的是关键时候不卡壳的技能,尤其是循环语句中和数据清洗中,先假设一种情况,领导安排你把,某机构给你们的坐标x和y数据列表中的每个元素的x偏移3个单位,假设你现在已经可以掌握相关的内容了,心里想太easy了,上来就说一顿操作,愉快的敲了如下的代码:

xy_file_list = open('./坐标.csv') new_xy = [(item[0]+3,item[1]) for item in xy_file_list]print("finish!!!")

当你点击了run,愉快的等待屏幕显示 "finish!!!"的时候,没想到屏幕却是一堆xxError,纳尼不应该啊,程序没问题啊,于是你赶紧检查一下坐标.csv里面的内容,你理想的是数据应该是[(1,2),(2,2),(1,4),(1,22),(1,6),(31,2),(4,2)],没想到分析数据后,傻眼了,给的数据是[(1,2),(2,2),(),(1,22),(1,6),(4,2)],上面的程序跑这样的数据,不报错就见鬼了,于是你又开始 加了一堆 判断条件。

xy_file_list = open('./坐标.csv')new_xy = []for item in xy_file_list:if len(item)>0: new_xy.append((item[0]+3,item[1]))

ok,程序暂时没问题了,很不幸领导又拿来了一个坐标数据,这次你学乖了,开始先检查数据了,一看数据是这样的[(1,2),(2,2),(),('1','22'),(1,6),(4,2)],估计心里又开始想怎么写判断条件了。

难道就拿那些xxError,没有办法了吗,只能写一个个if来规避这些,非也非也,办法肯定是有的,只要简单的修改最初的代码如下:

xy_file_list = open('./坐标.csv')new_xy = []for item in xy_file_list:try: new_xy.append((item[0]+3,item[1])) except Exception:continue

保证不会报错了,这个就是非常简单粗暴的处理方式了,是告诉程序遇到任何Error,都continue。

我们就上面那段代码,介绍一下python中如何来处理这些异常 error。首先要需要两个关键字 try 和 except两个字母跟的内容如下:

大部分人比较困惑的应该是如何 写 to do error 的代码吧,通常而已有下面几种:

直接忽视 使用 pass 或者 continue 关键字,不去处理,毕竟不处理也是一种处理;

打印出来发生了什么error, print(e),看看有哪些错误, 需要 上面配合使用 as e;

打印出哪些内容报错,例如上面案例中的print('错误的数据有:',item)

Python的错误

讲了如何处理python中的异常,那么下面说说python中通常会有哪些异常,python中内置的异常如下表,简直太多了,比较幸运的python中的异常是基于类来构建的,所以只要知道基类就可以了,最常用就,你只要知道Exception ,这个就行了,基本上可以帮你应对绝大多数的error了,其他常用的还有AttributeError,KeyError等,也行你想问为什么不用一个Exception ,还有区分那么多,这个是根据要处理的数据来定的,比较只有序列类型的数据才有IndexError这个异常,一堆int 和float数据怎么样也不会出现IndexError的,无论如何,如果理解不了,就都用Exception 。

OK,本小节讲解先到这里,本期的作业,把刚刚提到的例子用自己的代码实践一遍,不用写open,直接让xy_file_list 等于讲到的数据。还是那句话,欢迎截图,截图越多的同学,今后的作业被选中,点评的概率越大。

本系列由解忧数据出品

专注城市和地理数据

三w点jieyoudata点com(www.jieyoudata.com)

找数据,来解忧——它难道不香吗

-一点分享 更多选择-

欢迎加入解忧数据

Jieyou data

http://www.jieyoudata.com

微信号 : 解忧数据

欢迎您的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值