设为首页 收藏本站
查看: 638|回复: 0

[经验分享] python学习笔记-文件与异常

[复制链接]

尚未签到

发表于 2017-4-29 10:49:57 | 显示全部楼层 |阅读模式
Python学习笔记-文件与异常
  l  Python如何从文件中读取数据?
  Python中的基本输入都是基于行的:从文本文件向程序读入数据时,一次会读取一个数据行。Python中的BIF的open() 就是用来与文件交互的。用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
  l  Python如何处理异常?
  代码出现问题时,python的解释器会显示一个traceback,后面跟着一个错误消息。正是这样,python通过traceback来告诉我们运行时发生了什么意外的情况,在python的世界里,运行时错误叫做异常(exception)
   
  Python的异常处理允许错误的出现,但监视它的发生,然后给你一个机会来恢复,当然,如果你选择放弃处理,程序就会崩溃。在正常的python控制流程里,python尝试运行你的代码,如果没有任何问题,代码会继续正常执行。在异常控制流程里,python先尝试运行你的代码,如果发现问题,就会先执行恢复代码,然后继续执行你的代码。
   
  Try/except机制:在运行时系统地处理异常和错误。其格式如下:
         try:

                     your code
           except:
                     error code dealing process code
   
  l  处理缺少的文件:如果你处理的文件不存在了,那么会报一IOerror错误,并生成一个traceback的异常。所以,在处理文件前,我们可以先检测该文件是否还存在当前路径上,可以通过以下方式检测: if os.path.exist(‘filename.txt’): 或者 在我们打开文件和处理文件的整体代码加上一个try/except处理。
   
  l  特定指定异常:如果你的异常处理代码设计为处理一种特定的异常处理程序,一定要在except代码行上指定错误类型。当然,如果出现一个不同类型的运行时错误,你的代码将不在处理这个错误,但是至少现在你对这个异常已经有所认识,如果特定指定了代码要处理的某种特定的运行时错误,你的程序就不会在悄无声息的忽略默写运行时错误了。
   
   
   
  *split()方法执行时,它传回一个列表,不过目标标示符包围在小括号之间,而不是包围在中括号之间,这是一个列表吗?python中实际上有两种类型的列表:一种是可以改变的列表(使用中括号);另外一种是一旦创建就不能改变的列表(使用小括号),它更像一个数组。
  *遇到异常,可以放过吗?的确可以,当你遇到一个异常,有不想处理时,可以使用pass.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-370699-1-1.html 上篇帖子: python 实现 斐波那契数列 下篇帖子: Python开发利器WingIDE破解方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表