概述
前面几篇文章介绍了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文件操作与异常处理_Python文件操作及错误和异常处理的全部内容,希望文章能够帮你解决python文件操作与异常处理_Python文件操作及错误和异常处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复