【head First python】之文件与异常处理
2013-09-11 15:03
260 查看
【head First python】之文件与异常处理
上一章我们谈到如何处理嵌套列表中的数据,这一节将讲到如何处理来自文件中的数据及异常处理办法。
python是如何处理文件的?
Demo:
这里就拿附件中的文件做操作,下面是针对该文件逻辑特点写的代码
Demo:
现在,我们就可以使用try/except的方式来处理这些不确定的逻辑条件!
Demo:
Demo:
小结:
一:open()函数可以打开一个文件,并创建一个迭代器从文件读取数据,一次读取一个数据行。
二:readline()方法从一个打开的文件读取一行数据。
三:seek()方法可以用来将文件"退回"至起始位置
四:close()方法关闭open()打开的文件
五:split()方法可以将一个字符串根据相应的条件分解为几段
六:ValueError错误类型为数据不符合期望的格式时出现
七:IOError为无法正常访问文件时出现
八:find()方法会在一个字符串中查找一个指定的项,如果查不到则返回-1
九:可以在except:下面写pass,大概等同null或空,也就是当错误发生时忽略,什么也不做!
本文出自 “盛夏光年” 博客,请务必保留此出处http://mayday.blog.51cto.com/5166623/1294305
上一章我们谈到如何处理嵌套列表中的数据,这一节将讲到如何处理来自文件中的数据及异常处理办法。
python是如何处理文件的?
Demo:
file = open('sketch.txt')#使用open函数打开文件并赋值给file print(file.readline())#读文件第一行数据 print(file.readline())#读文件第二行数据 file.seek(0)#回到文件第一行 print(file.readline())#再读第一行 file.close()#关闭文件,使python不再调用
这里就拿附件中的文件做操作,下面是针对该文件逻辑特点写的代码
Demo:
import os a = os.getcwd() print(a) #打印出当前工作目录 os.chdir('C:\\Users\\haohu\Desktop')#修改当前工作目录 a = os.getcwd() print(a) #再打印出当前工作目录,文件要放在工作目录中! if os.path.exists('sketch.txt'):#判断文件是否存在 f = open('sketch.txt') for i in f: if i.find(':') != -1:#判断是否具备分割条件,这里为是否有:做为条件 (role, line) = i.split(':',1)#使用split函数并且将:前后分别赋值,,且只切割1个: print(role,end='')#打印:前的内容 print('|||',end='')#万恶的分割线 print(line,end='')#打印:后的内容 f.close() else: print('未发现sketch.txt文件')从上面例子可以看到除了open还多了很多处理该文件的逻辑条件,如split,find,os.path.exists等,看起来是否很复杂,如果该文件中的数据更多,或许需要添加更多的代码去处理这些特定逻辑,否则就等着debug!!
现在,我们就可以使用try/except的方式来处理这些不确定的逻辑条件!
Demo:
try: 可能藏有错误逻辑的代码 except: 自定义的恢复错误代码看起来是不是很酷?让我们改进一下代码!
Demo:
import os a = os.getcwd() print(a) #打印出当前工作目录 os.chdir('C:\\Users\\haohu\Desktop')#修改当前工作目录 a = os.getcwd() print(a) #再打印出当前工作目录,文件要放在工作目录中! try: f = open('sketch.txt') for i in f: try: (role, line) = i.split(':',1)#使用split函数并且将:前后分别赋值,,且只切割1个: print(role,end='')#打印:前的内容 print('|||',end='')#万恶的分割线 print(line,end='')#打印:后的内容 except ValueError: #错误类型为Value print('error') f.close() except IOError: #错误类型为IO print('未发现sketch.txt文件')是不是很棒?不仅不需要在代码中添加不是必要的处理逻辑与代码,而且可以看到使用try/except可以自己定义错误类型与错误提示代码,%100的调试利器!
小结:
一:open()函数可以打开一个文件,并创建一个迭代器从文件读取数据,一次读取一个数据行。
二:readline()方法从一个打开的文件读取一行数据。
三:seek()方法可以用来将文件"退回"至起始位置
四:close()方法关闭open()打开的文件
五:split()方法可以将一个字符串根据相应的条件分解为几段
六:ValueError错误类型为数据不符合期望的格式时出现
七:IOError为无法正常访问文件时出现
八:find()方法会在一个字符串中查找一个指定的项,如果查不到则返回-1
九:可以在except:下面写pass,大概等同null或空,也就是当错误发生时忽略,什么也不做!
本文出自 “盛夏光年” 博客,请务必保留此出处http://mayday.blog.51cto.com/5166623/1294305
相关文章推荐
- Head First Python 学习笔记-Chapter3:文件读取和异常处理
- Head First Python 学习笔记-Chapter3:文件读取和异常处理
- Head First Python 学习笔记-Chapter4:持久化--将数据写入文件
- Head First Python(文件与异常)
- 《Head First Python》学习笔记03 异常处理
- [Head First Python]4.读取文件datafile.txt, 去除两边空格, 存储到列表,从列表格式化(nester.py)后输出到文件man.out,other.out
- 《Head First Programming》---python 4_文件和数组中的数据
- [Head First Python]3. 文件与异常:处理错误
- HeadFirstPython---------(二)第四章,持久存储,数据保存到文件
- Python初入门(三)(Head First Python 第三章 文件与异常)
- Head First Python之3文件与异常
- 《Head First Python》学习笔记03 异常处理
- 笔记:HeadFirstPython(3)文件与异常
- Head First Python 第二章 函数模块&第三章 文件与异常&第四章 持久存储&第五章 处理数据
- 《head first python》——文件与异常
- Head First Python---------(一)第一章(初识Python__人人都爱列表)、第二章(共享你的代码__函数模块)、第三章(文件与异常__处理错误)
- 《Head_First_Python》 3文件与异常
- 《Head First Python》笔记 第三章 文件与异常
- Head First Python学习笔记2——文件与异常
- Head First Python (中文)学习笔记-第5章