【Python】学习笔记之文件和异常(上)|第10篇

书籍:《Python编程:从入门到实践》
打卡人:Owenli
打卡时间:2018.4.18

Python从入门到实践目录

前言

本篇将学习处理文件,让程序能够快速地分析大量的数据;还将学习错误处理,避免程序在面对意外情形时崩溃;将学习异常,它们是Python创建的特殊对象,用于管理程序运行时出现的错误;还将学习模块json,能够保存用户数据,以免程序停止时丢失。

下面开始今天的学习吧!!!

一、文件中读取数据

要使用文本文件中的信息,首先需要将信息从文件中读取到内存中。下面看看如何读取文件。

1.1 读取整个文件

首先创建一个文本文件pi_digits.txt。文件中包含圆周率小数点后30位,每10位换行。

pi_digits.txt

3.1415926535
8979323846
2643383279

下面程序打开并读取文件,将内容显示出来。

open():以某种方式打开文件,上面中传递一个参数,文件地址,函数返回一个表示文件的对象。

关键字with在不需要访问文件后将其关闭。也可以直接使用 close关闭文件,不过容易出问题,不推荐使用。

read()方法,读取文件的全部内容。

在输出是可以使用rstrip()删除字符串末尾的空白。

1.2 文件路径

open()函数根据当前执行文件所在目录查找需要打开的文件。

有时需要打开不在程序文件所属目录中的文件。让Python打开不与程序文件位于同一目录中的文件,需要提供文件路径。让 Python到指定位置查找。

相对路径:该路径是相对于当前运行的程序所在目录的。

绝对路径:该路径是文件在计算机中的准确存储位置。

1.3 逐行读取

读取文件时,常常需要检查其中的一行,你可能要在文件中查找特定的信息,或者要以某种方式修改文件中的文本。

下面例子,以一次一行的方式输出文件内容。

1.4 创建一个包含文件各行内容的列表

readlines()从文件中读取每一行,并将其中存储在一个列表中。

Python对处理的数据量没有限制,只要系统的内存足够多,处理多少数据都可以。

二、写入文件

保存数据最方便的方式之一是写入到文件中。

open()还提供了其他的参数,控制文件读取和写入模式。

打开文件 时,可指定读取模式 ('r' )、写入模式 ('w' )、附加模式 ('a' )或让你能够读取和写入文件的模式('r+' )。如果省略则会以默认只读模式打开文件。

如果要写入的文件不存在,会自动创建。

w模式,在写入时,会清空之前的内容。

a模式,追加模式写入,不会清空之前的数据。

三、异常

Python中称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继
续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。

3.1 处理ZeroDivisionError异常

该异常是除数为零异常。当除数为零是就会抛出这个错误。


3.2 使用try-except代码块

通过编写try-except代码块来处理可能引发的异常。try中执行代码,except中处理可能发生的异常。

3.3 else代码块

通过将可能引发错误的代码放在try-except代码块中,提高了程序抵御错误的能力。

try-except-else其中else代码块依赖于try代码块执行的代码都应放在else代码块中。

try-except-else 代码块的工作原理大致如下:Python尝试执行try 代码块中的代码;只有可能引发异常的代码才需要放在try 语句中。有时候,有一些仅在try 代码块成功 执行时才需要运行的代码;这些代码应放在else 代码块中。except 代码块告诉Python,如果它尝试运行try代码块中的代码时引发了指定的异常,该怎么办。

四、小结

本篇主要学习文件读和写的相关知识,另外,还学习了关于异常的部分内容。下篇将学习异常的剩余部分。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 227,367评论 6 532
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,001评论 3 413
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 175,213评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,535评论 1 308
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,317评论 6 405
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,868评论 1 321
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,963评论 3 440
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,090评论 0 285
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,599评论 1 331
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,549评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,712评论 1 367
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,233评论 5 356
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,961评论 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,353评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,607评论 1 281
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,321评论 3 389
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,686评论 2 370

推荐阅读更多精彩内容

  • 第六章:数字 第七章:序列,列表,元组 1.序列 序列类型有着相同的访问模式:它的每一个元素可以通过指定一个偏移量...
    m风满楼阅读 908评论 0 2
  • Python异常处理 异常概念: 异常:就是不正常的情况,程序开发过程中错误和BUG都是补充正常的情况 异常发生的...
    youngkun阅读 928评论 0 4
  • 一、初步认识反射### 使用反射,能够快速地应用开发工具动态地查询新添加类的能力。能够分析类能力的程序称为反射。反...
    HCherisher阅读 411评论 0 10
  • #本文参加‘青春’大赛,本人保证本文为本人原创,如有问题,则于主办方无关,自愿放弃评优评奖资格。 ...
    翊祤阅读 353评论 3 27
  • 方说围棋乐,得趣能几何? 始寻天真在,终归谁烂柯?
    鲵老阅读 283评论 1 2