python学习笔记-文件与异常


Python学习笔记-文件与异常

Python如何从文件中读取数据?

Python中的基本输入都是基于行的:从文本文件向程序读入数据时,一次会读取一个数据行。Python中的BIFopen() 就是用来与文件交互的。用for语句与open()结合就可以逐行读取文件了。

Python处理文件的标准:打开-处理-关闭

         the_file = open (‘文件名.后缀名’)

         #文件处理过程

         the_file.close()

python处理文件的过程实例:

         >>>import os    //从标准库中导入“os”

>>> os.getcwd()                //获取当前工作路径

'C:\\Python33'

>>> os.chdir('D:\kankan')  //修改路径

>>> os.getcwd()                          //确认当前路径

'D:\\kankan'

#打开数据文件,从文件中读取前两行,并在屏幕上显示出来。

>>> data = open('test.txt')   //打开文件

>>> print(data.readline(),end = '')

jhfaflalfbalbfaljbfehfa

>>> print(data.readline(),end = '')

把家乐福克拉夫拉风吧

#“退回到文件的起始位置,以下两种方法都可以。前提是对python

>>> data.seek(0)

0

>>> data.tell()

0                                                                                                                    

#for语句处理读取文件的过程

>>> for each_line in data:

         print(each_line,end = '')

 

jhfaflalfbalbfaljbfehfa

把家乐福克拉夫拉风吧

伐啦空间和flag

阿发家里不回家elf卡爆了

办法label

#关闭文件

>>> data.close()

分析我们处理的文件,有时文件可能存在某种固定的格式,当我们分析这种格式时,为什么不想想,我们怎么按照这种格式来分割文件呢?python提供了一个BIF也即split()

来处理文件。但是,我们需注意的是我们的文件,可能并不完全根据一种格式来处理的,所以有可能出现不可预料的错误。怎么处理这些错误呢?有两种截然不同的方法:

1、  要处理大量意外的情况时,最好的方法就是增加代码的逻辑来进行处理,如果更多的担心问题,就写更多的代码。

2、  当然,也可以允许这种错误发生,然后只需要在各个错误确实发生时,分别处理响应的错误。(异常处理)

在第一种方法中,我们可以利用python提供的find() 来验证文本的某一行是否符合格式,然后进行响应的处理。我们可以看看find的用法:

         >>> studentnum = "2012120810"

>>> studentnum.find('8')   //find查找字符窜是从0开始编序号的

7

>>> studentnum.find('9')   //如果没有匹配的字符,就返回-1

-1

Python如何处理异常?

代码出现问题时,python的解释器会显示一个traceback,后面跟着一个错误消息。正是这样,python通过traceback来告诉我们运行时发生了什么意外的情况,在python的世界里,运行时错误叫做异常(exception

 

Python的异常处理允许错误的出现,但监视它的发生,然后给你一个机会来恢复,当然,如果你选择放弃处理,程序就会崩溃。在正常的python控制流程里,python尝试运行你的代码,如果没有任何问题,代码会继续正常执行。在异常控制流程里,python先尝试运行你的代码,如果发现问题,就会先执行恢复代码,然后继续执行你的代码。

 

Try/except机制:在运行时系统地处理异常和错误。其格式如下:

         try:

                   your code

         except:

                   error code dealing process code

 

处理缺少的文件:如果你处理的文件不存在了,那么会报一IOerror错误,并生成一个traceback的异常。所以,在处理文件前,我们可以先检测该文件是否还存在当前路径上,可以通过以下方式检测: if os.path.exist(‘filename.txt’): 或者 在我们打开文件和处理文件的整体代码加上一个try/except处理。

 

特定指定异常:如果你的异常处理代码设计为处理一种特定的异常处理程序,一定要在except代码行上指定错误类型。当然,如果出现一个不同类型的运行时错误,你的代码将不在处理这个错误,但是至少现在你对这个异常已经有所认识,如果特定指定了代码要处理的某种特定的运行时错误,你的程序就不会在悄无声息的忽略默写运行时错误了。

 

 

 

*split()方法执行时,它传回一个列表,不过目标标示符包围在小括号之间,而不是包围在中括号之间,这是一个列表吗?python中实际上有两种类型的列表:一种是可以改变的列表(使用中括号);另外一种是一旦创建就不能改变的列表(使用小括号),它更像一个数组。

*遇到异常,可以放过吗?的确可以,当你遇到一个异常,有不想处理时,可以使用pass.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值