当前位置:文档之家› python异常处理学习

python异常处理学习

python异常处理学习
python异常处理学习

python异常处理(基础)

2014-01-13 22:57 by 虫师, 16151 阅读, 4 评论, 收藏, 编辑

之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充。

https://www.doczj.com/doc/fe2397161.html,/fnng/archive/2013/04/28/3048356.html

python shell

>>> open('abc.txt','r')

Traceback (most recent call last):

File "", line 1, in

IOError: [Errno 2] No such file or directory: 'abc.txt'

打开一个不存在的文件abc.txt 文件,当系统找不到abc.txt 文件时,就会抛出给我们一个IOError类型的错误,No such file or directory:abc.txt (没有abc.txt这样的文件或目录)

Try...except...

假如,我们已经知道这种类型的错误,那么就可以通过一个异常扑捉来扑捉这个错误。我们可以通过try...except 来接收这个错误。打开文件写入:

try:

open("abc.txt",'r')

except IOError:

pass

再来运行程序就会看不到任何错误,因为我们用except 接收了这个IOError错误。pass 表示实现了相应的实现,但什么也不做。

假如我不是打开一个文件,而是输出一个没有定义的变量呢?

try:

print aa

except IOError:

pass

显然,在上面的代码中我并没有对aa 赋值,运行结果:

Traceback (most recent call last):

File "/home/fnngj/py_se/tryy.py", line 3, in

print aa

NameError: name 'aa' is not defined

我们已经用except 接收错误了,为什么错误还是还是抛出来了。如果你细心会发现这一次的错误类型是NameError ,而我接收类型是IOError ,所以要想接收这个print的错误,那么需要修改接收错误的类型为NameError

虽然,我知道print 语句是可能会抛一个NameError 类型的错误,虽然接收了这个类型错误,但我不知道具体的错误提示信息是什么。那么,我能不能把错误信息打印出来呢?当然可以:

try:

print aa

except NameError, msg:

print msg

我们在接收错误类型的后面定义一个变量msg用于接收具体错误信息, 然后将msg接收的错误信息打印。再来运行程序:

name 'aa' is not defined

现在只打印了一行具体错误信息。

异常的抛出机制:

1、如果在运行时发生异常,解释器会查找相应的处理语句(称为handler).

2、要是在当前函数里没有找到的话,它会将异常传递给上层的调用函数,看看那里能不能处理。

3、如果在最外层(全局“main”)还是没有找到的话,解释器就会退出,同时打印出traceback 以便让用户找到错误产生的原因。

注意:虽然大多数错误会导致异常,但一个异常不一定代表错误,有时候它们只是一个警告,

有时候它们可能是一个终止信号,比如退出循环等。

try...finally...

try...finally...子句用来表达这样的情况:

我们不管线捕捉到的是什么错误,无论错误是不是发生,这些代码“必须”运行,比如文件关闭,释放锁,把数据库连接返还给连接池等。

创建文件poem.txt

tryf.py

复制代码

import time

try:

f = file('poem.txt')

while True: # our usual file-reading idiom

line = f.readline()

if len(line) == 0:

break

time.sleep(2)

print line,

finally:

f.close()

print 'Cleaning up...closed the file'

复制代码

运行程序(在windows命令提示符或linux终端下运行):

复制代码

...$ python tryf.py

abc

efg

^CCleaning up...closed the file

Traceback (most recent call last):

File "tryy.py", line 18, in

time.sleep(2)

KeyboardInterrupt

复制代码

程序读poem.txt文件中每一行数据打印,但是我有意在每打印一行之前用time.sleep 方法暂停2秒钟。这样做的原因是让程序运行得慢一些。在程序运行的时候,按Ctrl-c中断/取消程序。

我们可以观察到KeyboardInterrupt异常被触发,程序退出。但是在程序退出之前,finally 从句仍然被执行,把文件关闭。

到目前为止,我们只讨论了如何捕捉异常,那么如何抛出异常呢?

Raise抛出异常

使用raise来抛出一个异常:

tryr.py

#coding=utf-8

filename = raw_input('please input file name:')

if filename=='hello':

raise NameError('input file name error !')

程序要求用户输入一个文件名,如果用户输入的文件名是hello ,那么抛出一个NameError的异常,用户输入hello 和NameError异常之间没有任何必然联系,我只是人为的通过raise来这样定义,我当然也可以定义称TypeError ,但我定义的异常类型必须是python提供的。

附录:

常见的python异常类型

https://www.doczj.com/doc/fe2397161.html,/library/exceptions.html#bltin-exceptions

从几年前开始学习编程直到现在,一直对程序中的异常处理怀有恐惧和排斥心理。之所以这样,是因为不了解。这次攻python,首先把自己最畏惧和最不熟悉的几块内容列出来,里面就有「异常处理」这一项。

《Dive into Python》并没有专门介绍异常处理,只是例子中用到的时候略微说明了一下。今天下载《Learn Python》,直接进异常处理这块。这一部分有四章,第一章讲解异常处理的一般使用方法,后面的章节深入地讨论其机制。我目前只看了第一章,先学会用,以后有必要的时候再扩展阅读。

python主要支持五种异常机制,一一列举。

默认的异常处理器

复制代码代码如下:

s = 'Hello girl!'

print s[100]

print 'continue'

如果我们没有对异常进行任何预防,那么在程序执行的过程中发生异常,就会中断程序,调用python默认的异常处理器,并在终端输出异常信息。这种情况下,第3行代码不会执行。

try…except

复制代码代码如下:

s = 'Hello girl!'

try:

print s[100]

except IndexError:

print 'error...'

print 'continue'

程序执行到第2句时发现try语句,进入try语句块执行,发生异常,回到try语句层,寻找后面是否有except语句。找到except语句后,会调用这个自定义的异常处理器。except将异常处理完毕后,程序继续往下执行。这种情况下,最后两个print语句都会执行。

except后面也可以为空,表示捕获任何类型的异常。

try…finally

复制代码代码如下:

s = 'Hello girl!'

try:

print s[100]

finally:

print 'error...'

print 'continue'

finally语句表示,无论异常发生与否,finally中的语句都要执行。但是,由于没有except处理器,finally执行完毕后程序便中断。这种情况下,倒第2个print会执行,到第1个不会执行。如果try语句中没有异常,三个print都会执行。

assert

复制代码代码如下:

assert False,'error...'

print 'continue'

这个语句,先判断assert后面紧跟的语句是True还是False,如果是True则继续执行print,如果是False则中断程序,调用默认的异常处理器,同时输出assert语句逗号后面的提示信息。本例情况下,程序中断,提示error,后面的print不执行。

with…as

复制代码代码如下:

with open('nothing.txt','r') as f:

f.read()

print 2/0

print 'continue'

我们平时在使用类似文件的流对象时,使用完毕后要调用close方法关闭,很麻烦。这里with…as语句提供了一个非常方便的替代方法:open打开文件后将返回的文件流对象赋值给f,然后在with语句块中使用。with语句块完毕之后,会隐藏地自动关闭文件。

如果with语句或语句块中发生异常,会调用默认的异常处理器处理,但文件还是会正常关闭。

这种情况下,会抛出异常,最后的print不执行。

书中介绍的很详细,除了上面我提到的之外,还有很多有用的附加信息,比如try..except..finally..else可以连用,比如自定义异常类。这里不再列出,详情可以参考这本书中的介绍。

python异常如何全面捕获

标签:pythonexceptionimportfilec

2012-04-04 13:38 19728人阅读评论(1) 收藏举报

分类:

Python(11)

版权声明:本文为博主原创文章,未经博主允许不得转载。

如果你在写程序时遇到异常后想进行如下处理的话请参考我下面写的对异常处理的方法:

假设有下面的一段程序:

try:

语句1

语句2

.

语句N

except .........:

print .......

但是你并不知道“语句1至语句N”在执行会出什么样的异常,但你还要做异常处理,且想把出现的异常打印出来,并不停止程序的运行,

所以在“except ......”这句应怎样来写呢?

至少3个方法:

方法一:捕获所有异常

[python] view plaincopyprint?

try:

a=b

b=c

except Exception,ex:

print Exception,":",ex

方法二:采用traceback模块查看异常

[python] view plaincopyprint?

import traceback

try:

a=b

b=c

except:

traceback.print_exc()

方法三:采用sys模块回溯最后的异常

[python] view plaincopyprint?

import sys

try:

a=b

b=c

except:

info=sys.exc_info()

print info[0],":",info[1]

但是,如果你还想把这些异常保存到一个日志文件中,来分析这些异常,那么请看下面的方法:

把traceback.print_exc()打印在屏幕上的信息保存到一个文本文件中

[python] view plaincopyprint?

try:

a=b

b=c

except:

f=open("c:log.txt",'a')

traceback.print_exc(file=f)

f.flush()

f.close()

python中的异常

异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。

Exception类是常用的异常类,该类包括StandardError,StopIteration, GeneratorExit, Warning 等异常类。

StandardError类是python中的错误异常,如果程序上出现逻辑错误,将引发该异常。StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使用IOEroor, EOFError, ImportError等类,不需要导入exception模块。

StopIteration类判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。GeneratorExit类是由Generator函数引发的异常,当调用close()时引发该异常。Warning类表示程序中的代码引起的警告。

python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,python中使用try...except语句捕获异常,异常子句定义在try子句后面。

try...except的使用方法

try...except用于处理问题语句,捕获可能出现的异常。try子句中的代码块放置可能出现异常的语句,except子句中的代码块处理异常。

演示try...except语句捕获IOError异常

try:

file("hello.txt", "r") #如果文件不存在,引发异常

print "读文件"

except IOError: #捕获IO异常

print "文件不存在"

except:#其它异常

print "程序异常"

python与Java的异常处理模式相似,异常处理语句也可以嵌套,演示如下:

try:

s = "hello"

try:

print s[0] + s[1]

print s[0] - s[1]

except TypeError:

print "字符串不支持减法运算"

except:

print "异常"

如果外层try子句中的代码引发异常,程序将直接跳转到外层try对应的except子句,而内部的try子句将不会被执行。

try...finally的使用方法

try...except后还可以添加一个finally子句。无论异常是否发生,finally子句都会被执行。所有的finally子句通常用于关闭因异常而不能释放的系统资源。

try:

f = open("hello.txt", "r")

try:

print f.read(5)

except:

print "读文件异常"

finally:

print "释放资源"

f.close()

except IOError:

print "文件不存在"

使用raise抛出异常

当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。

演示raise用法

try:

s = None

if s is None:

print "s 是空对象"

raise NameError #如果引发NameError异常,后面的代码将不能执行print len(s)

except TypeError:

print "空对象没有长度"

自定义异常

python允许程序员自定义异常,用于描述python中没有涉及的异常情况,自定义异常必须继承Exception类,自定义异常按照命名规范以"Error"结尾,显示地告诉程序员这是异常。自定义异常使用raise语句引发,而且只能通过人工方式触发。

from __future__ import division

class DivisionException(Exception):

def __init__(self, x, y):

Exception.__init__ (self, x, y) #调用基类的__init__进行初始化

self.x = x

self.y = y

if __name__ == "__main__":

try:

x = 3

y = 2

if x % y > 0: #如果大于0,则不能被初始化,抛出异常

print x/y

raise DivisionException(x, y)

except DivisionException,div: #div 表示DivisionException的实例对象print "DivisionExcetion: x/y = %.2f" % (div.x/div.y)

assert语句的使用

assert语句用于检测某个条件表达式是否为真。assert语句又称为断言语句,即assert认为检测的表达式永远为真,if语句中的条件判断都可以使用assert语句检测。

Python文件和异常处理

6. 异常和文件处理- Dive Into Python 6.1 异常处理. Python的异常用 try except finally 来处理. 并且except后还可以跟else . 引发异常用raise 如果抛出的异常没有被处理. 在Python IDE中是显示一些红色的信息. 在真正的Python程序运行时. 会导致程序终止. 在以前我们已经见到过一下几种异常: 在Dictionary 中如果使用的key 不存在. 会引发KeyError异常.如: >>> d = {"a":1, "b":"abc"} >>> d["c"] Traceback (most recent call last): File "", line 1, in KeyError: 'c' 搜索列表中不存在的值. 将引发ValueError异常.如: >>> li = [1,2] >>> li.index(3) Traceback (most recent call last): File "", line 1, in ValueError: list.index(x): x not in list 对应的. 若用下标来引用列表中的元素. 若下标出界. 会产生IndexError异常.如: >>> li[2] Traceback (most recent call last): File "", line 1, in IndexError: list index out of range 调用不存在的方法. 会引发AttributeError异常. 引用不存在的变量. 引发NameError异常. 未强制转化就混用数据类型. 引发TypeError异常. 文件操作错误引发的IOError.如: try: fsock = open("/notthere") except IOError: print "The file dose not exits..." else: print "open the file." print "this line will always print" 注意上边的代码中: open是一个内置函数. 用来打开文件. 并返回一个文件对象. try except 后边可以跟else 语句. 当没有捕捉到指定的异常时. 执行else 语句. 导入一个模块时. 若模块不存在. 会引发ImportError异常. 还可以定义自己的异常类. 定义时让它继承内置的Exception类. 然后在需要抛出异常时用raise抛出.

Python中的异常

python的try语句有两种风格 一:种是处理异常(try/except/else) 二:种是无论是否发生异常都将执行最后的代码(try/finally) try/except/else风格 try: <语句>#运行别的代码 except<名字>: <语句>#如果在try部份引发了'name'异常 except<名字>,<数据>: <语句>#如果引发了'name'异常,获得附加的数据 else: <语句>#如果没有异常发生 try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except 子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。 2、如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。 3、如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。 try/finally风格 try: <语句> finally: <语句>#退出try时总会执行 python总会执行finally子句,无论try子句执行时是否发一异常。 1、如果没有发生异常,python运行try子句,然后是finally子句,然后继续。 2、如果在try子句发生了异常,python就会回来执行finally子句,然后把异常递交给上层try,控制流不会通过整个try语句。 当你想无论是否发生异常都确保执行某些代码时,try/finally是有用的。 这个在打开文件的时候有用finally总是在最后close()文件

Python 错误和异常小结

原文链接https://www.doczj.com/doc/fe2397161.html,/sinchb/article/details/8392827 事先说明哦,这不是一篇关于Python异常的全面介绍的文章,这只是在学习Python 异常后的一篇笔记式的记录和小结性质的文章。什么?你还不知道什么是异常,额... 1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用Python了)。 python标准异常 异常名称描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 SystemExit Python 解释器请求退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零(所有数据类型)

AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作系统错误 WindowsError 系统调用失败 ImportError 导入模块/对象失败 KeyboardInterrupt 用户中断执行(通常是输入^C) LookupError 无效数据查询的基类 IndexError 序列中没有没有此索引(index) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象(没有属性) UnboundLocalError 访问未初始化的本地变量 ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象RuntimeError 一般的运行时错误 NotImplementedError 尚未实现的方法 SyntaxError Python 语法错误 IndentationError 缩进错误 TabError Tab 和空格混用 SystemError 一般的解释器系统错误 TypeError 对类型无效的操作 ValueError 传入无效的参数 UnicodeError Unicode 相关的错误

Python 错误和异常小结

原文链接事先说明哦,这不是一篇关于Python异常的全面介绍的文章,这只是在学习Python异常后的一篇笔记式的记录和小结性质的文章。什么你还不知道什么是异常,额... 异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用Python了)。 python标准异常

2.捕获异常 Python完整的捕获异常的语句有点像: 1.try: 2.try_suite 3.except Exception1,Exception2,...,Argument: 4.exception_suite 5....... #other exception block 6.else: 7.no_exceptions_detected_suite 8.finally: 9.always_execute_suite 额...是不是很复杂当然,当我们要捕获异常的时候,并不是必须要按照上面那种格式完全写下来,我们可以丢掉else语句,或者finally语句;甚至不要exception语句,而保留finally语句。额,晕了好吧,下面,我们就来一一说明啦。 语句 try_suite不消我说大家也知道,是我们需要进行捕获异常的代码。而except语句是关键,我们try捕获了代码段try_suite里的异常后,将交给except来处理。 try...except语句最简单的形式如下: 1.try: 2.try_suite 3.except: 4.exception block

Python异常处理实例解读,Python中的断言

Python异常处理实例解读 #Python异常处理实例解读,Python中的断言 #断言是一个健全检查,可以在完成对程序的测试后打开或关闭。 #测试表达式,如果结果为false,则会引发异常。 #assert语句,assert Expression[, Arguments] #程序解读,测试输入值是否合适,表达式为false,Python会引发AssertionError异常。def test1(ti):#函数块以关键字def开头,后跟函数名和小括号(()) assert (ti > 0),"这个值不合适!"#如果表达式为false,Python会引发AssertionError异常。 return (ti+5)+32#语句return [expression]用于退出一个函数,可选地将一个表达式传回给调用者 print (test1(273))#ti=273测试输出 print (test1(-300))#ti=-300测试输出 运行结果! 310 Traceback (most recent call last): File "f:\张铁刚资源库\python\经验谈\103python异常处理实例解读\python异常处理实例解读.py", line 9, in print (test1(-300)) File "f:\张铁刚资源库\python\经验谈\103python异常处理实例解读\python异常处理实例解读.py", line 6, in test1 assert (ti > 0),"这个值不合适!" AssertionError: 这个值不合适! >>>

Python专题——异常和工具

1.异常基础 try/except:捕捉由python或程序员引起的异常并恢复。 try/finally:无论异常是否发生,执行清理语句 raise:手动在代码中触发异常 assert:有条件的在代码中触发异常 with/as:在python2.6和后续版本中实现环境管理器 1.1为什么使用异常? 异常处理对于错误处理、终止动作和事件通知有用。它可以简化特殊情况的处理,并且可以用来实现替代的控制流程。一般来讲,异常处理还可以减少程序所需的检测错误代码的数量,因为所有的错误都由处理器来过滤,你可能不需要测试每个操作的输出。 1.2异常的角色 错误处理 事件通知 特殊情况处理 终止行为 非常规控制流程 2.异常处理 2.1默认异常处理器 如果代码没有刻意的捕捉代码异常,它将会一直向上返回程序顶层,并启用默认的异常处理器:就是打印标准出错消息。这些消息引发的异常还有堆栈跟踪:也就是异常发生时激活的程序行和函数清单。 def fetcher(obj, index): return obj[index] x = 'spam' fetcher(x, 4) output: Traceback (most recent call last):

File "C:\E\workspace\PythonLearning\chapter17\exc.py", line 6, in fetcher(x, 4) File "C:\E\workspace\PythonLearning\chapter17\exc.py", line 2, in fetcher return obj[index] IndexError: string index out of range 任何未捕获的异常都流入默认的异常处理器,python在程序的最顶端提供它。这个处理器打印类似的出错消息,并且退出程序。 2.2捕获异常:try/except/else语句 try: fetcher(x, 4) except IndexError: print'got exception' try首行底下的代码块代表此语句的主要动作:试着执行程序代码。Except子句定义了try代码块内引发的异常的处理器,而else子句则是提供没发生异常时要执行的处理器。 ●如果try代码块语句执行时的确发生了异常,python就跳回try,执行第一个符合引发 异常的except子句下面的语句。当except代码块执行后(除非except代码块又引发了另一异常),控制权就会到整个try语句后继续执行。 ●如果异常发生在try代码块内,没有符合的except子句,异常就会向上传递到程序中的 之前进入的try中,或者如果它是第一条这样的语句,就传递到这个进程的顶层(这回使Python终止这个程序并打印默认的出错消息)。 ●如果try首行底下执行的语句没有发生异常,python就会执行else下的语句(如果有的 话),控制权会在整个try语句下继续。

python异常处理

python异常处理 #!/usr/bin/python import traceback try: 1/0 #except Exception,e: # print traceback.format_exc() except Exception as e: print e #!/usr/bin/python import traceback try: 1/0 #except Exception,e: # print traceback.format_exc() except Exception , e: print e Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员。所有异常都从基类Exception继承,而且都在exceptions模块中定义。Python自动将所有异常名称放在内建命名空间中,所以程序不必导入exceptions模块即可使用异常。一旦引发而且没有捕捉SystemExit异常,程序执行就会终止。如果交互式会话遇到一个未被捕捉的SystemExit异常,会话就会终止。 方式一:try语句: 1使用try和except语句来捕获异常 try: block except [exception,[data…]]: block try: block except [exception,[data...]]: block else: block 该种异常处理语法的规则是:

· 执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。 · 如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。 · 如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。 · 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 · 如果没有发生异常,则执行else块代码。 例: try: f = open(“file.txt”,”r”) except IOError, e: print e 捕获到的IOError错误的详细原因会被放置在对象e中,然后运行该异常的except代码块 捕获所有的异常 try: a=b b=c except Exception,ex: print Exception,":",ex 使用except子句需要注意的事情,就是多个except子句截获异常时,如果各个异常类之间具有继承关系,则子类应该写在前面,否则父类将会直接截获子类异常。放在后面的子类异常也就不会执行到了。 2 使用try跟finally: 语法如下: try: block finally: block 该语句的执行规则是: · 执行try下的代码。 · 如果发生异常,在该异常传递到下一级try时,执行finally中的代码。 · 如果没有发生异常,则执行finally中的代码。 第二种try语法在无论有没有发生异常都要执行代码的情况下是很有用的。例如我们在python中打开一个文件进行读写操作,我在操作过程中不管是否出现异常,最终都是要把该文件关闭的。 这两种形式相互冲突,使用了一种就不允许使用另一种,而功能又各异

三种使用python进行数据异常值预处理方法对比

三种使用python进行数据异常值预处理方法对比 一、前言 本文利用python代码,涉及了数据预处理环节,目的是去除异常值,涉及的三种方法利用pandas、numpy等等实现,并进行可视化对比,对比各种方法的优劣势。 二、预处理的原始数据 代码如下: from datetime import datetime from pandas import read_table fname = './data/spikey_v.dat' cols = ['j', 'u', 'v', 'temp', 'sal', 'y', 'mn', 'd', 'h', 'mi'] df = read_table(fname , delim_whitespace=True, names=cols) df.index = [datetime(*x) for x in zip(df['y'], df['mn'], df['d'], df['h'], df['mi'])] df = df.drop(['y', 'mn', 'd', 'h', 'mi'], axis=1)

df.head() 结果是: 三、使用方法get_median_filtered() 代码如下: import numpy as np def get_median_filtered(signal, threshold=3): signal = signal.copy() difference = np.abs(signal - np.median(signal)) median_difference = np.median(difference) if median_difference == 0: s = 0 else: s = difference / float(median_difference) mask = s > threshold

python异常处理学习

python异常处理(基础) 2014-01-13 22:57 by 虫师, 16151 阅读, 4 评论, 收藏, 编辑 之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充。 https://www.doczj.com/doc/fe2397161.html,/fnng/archive/2013/04/28/3048356.html python shell >>> open('abc.txt','r') Traceback (most recent call last): File "", line 1, in IOError: [Errno 2] No such file or directory: 'abc.txt' 打开一个不存在的文件abc.txt 文件,当系统找不到abc.txt 文件时,就会抛出给我们一个IOError类型的错误,No such file or directory:abc.txt (没有abc.txt这样的文件或目录) Try...except... 假如,我们已经知道这种类型的错误,那么就可以通过一个异常扑捉来扑捉这个错误。我们可以通过try...except 来接收这个错误。打开文件写入: try: open("abc.txt",'r') except IOError: pass 再来运行程序就会看不到任何错误,因为我们用except 接收了这个IOError错误。pass 表示实现了相应的实现,但什么也不做。 假如我不是打开一个文件,而是输出一个没有定义的变量呢? try: print aa except IOError:

相关主题
文本预览
相关文档 最新文档