python文件操作与异常处理_Python文件操作及错误和异常处理

前面几篇文章介绍了Python的基本语法、函数和模块以及Python面向对象编程,这些知识对于大部分的日常的编程问题已经足够了,但对于经常需要分析大数据如基因组的人来说还是不够的。本章将介绍Python的文件操作以及错误处理与调试。

文件读写

用python做数据分析不能总是临时创建一些数据集,更多的时候我们要分析从其它地方获得的数据,必输生信领域最多的就是测序数据,因此第一步就需要将数据读入到Python中,然后再对数据进行操作,最后可以将结果输出到新的文件中保存。

读文件

使用open()函数可以打开文件,然后输入参数'r'表示read来告诉python你要读文件

f1 = open("/Users/yingshanli/Desktop/hello.txt", "r")

文件读取成功后,就可以阅读文件中的内容了,根据不同需要可以用不同的方式读取文件内容,

f1.read() #当文件比较小时,可以一次性读取文件所有内容

f1.read(size) #可以一次只读取固定字节的内容

f1.readline() #一次只读取一行

for line in f1.readlines(): #一次性都区所有内容并返回一个list

...

记住文件打开之后一定要记得用close()函数关闭

f1.close()

写文件

和读文件一样,首先要用open()函数来打开文件,然后调用"w"(表示write)参数来告诉python你要写文件

f2 = open("/Users/yingshanli/Desktop/hello.txt", "w")

文件读取成功后就可以调用write()函数来写文件了,可以写入一个字符串也可以写入一个列表

f2.write("Hello world!")

f2.write(list)

注意使用"w"参数是,新写入的内容会覆盖原来的内容,如果只是想往文件末尾添加新的内容,可以调用"a"参数(append)

同样打开文件后,最后要记得关闭文件

f2.close()

错误处理与调试

python常见异常类型NameError: 变量没有声明,name is not defined

ZeroDivisionError: 除数为0, devision by zero

SyntaxError: 语法变量,invalid syntax

IndexError: 索引超过范围,list index out of range

KeyError: 关键字不存在

IOErroe: 输入输出错误,No such file or directory

AttributeError: 访问没有定义的对象属性,x object has no attibute y

ValueError: 数值错误

TypeError: 类型错误

捕获异常

Python的错误处理机制是try...except...finally,当try语句块中出现错误时,程序会跳到except中执行,不管有没有出现错误最后都会执行finally语句块。

for arg in sys.arg[1:]:

try:

f = open(arg, "r")

except IOError as e:

print("IOError", e)

else:

print(arg, "has", len(f.readlines()), "lines")

f.close

跳过异常

我们能够捕获异常,我们也可以跳过这些异常,让程序不至于中断,而是可以继续进行

for arg in sys.arg[1:]:

try:

f = open(arg, "r")

except IOError as e:

print("IOError", e)

pass

定义异常

异常和错误是类,所有的异常类都是从父类BaseException继承下来的,所有的异常都会被它捕获。除了python内置的一些异常类之外,还可以自己选择继承一些异常来定制异常

class FileError(IOError):

pass

抛出异常

我们定义了自己的异常后可以根据需要来抛出异常

for arg in sys.arg[1:]:

try:

f = open(arg, "r")

if arg = "README.txt" :

raise FileError("Don't open README")

好了,以上就是Python系列简明教程的全部了,希望能对需要的人有所帮助。后面我还会写一些其它系列的针对小白的基础教程,如Linux、perl、git等等。

谢谢阅读!

你可能感兴趣的:(python文件操作与异常处理)