异常和文件

1.异常

  • 1.1异常的概念
    • 异常就是在程序运行过程中的一些错误。
    • 程序运行过程中的异常并不是为了停止程序,而是让我们编写代码来处理这些异常,可以使得程序更加友好和稳定。
  • 1.2异常的传播
    • 在函数中出现异常时,如果在函数中进行了异常的处理,则异常不会进行传播,如果异常没有处理,那么它就会向函数调用处传播,如果函数调用处进行了异常处理,则异常不会再传播,如果没有则继续向上层调用处传播,以此类推,直到最后程序的全局作用域,如果还没处理,那就程序终止,并显示异常信息。
    • 当异常出现后,所有的异常信息会保存再一个异常对象中,异常传播的过程,实际上是将异常对象抛给调用处。
  • 1.3异常处理的语法
try :  #可能出现异常的代码块
    代码块
except 异常类型:#根据异常类型处理异常
    代码块
except Exception as e:#处理所有异常,将异常信息存入变量e中
    代码块
else:   #没有异常时运行的代码
    代码块
finally:   #不管有无异常都运行的代码
    代码块
def fn():
    """
    演示异常处理
    """
    lst = [3, 7, 9, 10]
    try:
        r = lst[5]/0
    except IndexError:
        print('索引值超出了范围!!!')
    except Exception as e:
        print(f'出错了!!!{type(e)}:{e}。')
    else:
        print(f'r的结果为{r}。')
    finally:
        print('程序结束!!!')

if __name__ == '__main__':
    fn()
"""
运行结果:
索引值超出了范围!!!
程序结束!!!
"""

2.文件

  • 2.1文件的基本概念
    • 在这里文件就是指通过python程序对计算机各种文件进行增删改查的操作,也叫做I/O(Input/Output)。
    • 文件的操作步骤:先打开文件,然后对文件进行各种操作,最后关闭文件。
    • 文件会有一个返回值。返回值就是一个对象,这个对象就是指当前文件。
  • 2.2打开文件
    • open()函数,open(文件名或路径,打开方式,解码)。如果打开文件和你写的程序在同一文件夹下,直接使用文件名,如果不在请使用路径;打开方式默认'r'只读;'w'写,覆盖原来的内容,文件不存在就新建;'a'追加,在原文件后面追加内容,原文件不存在新建;其他方式copy一个表,总结下,'b'就是二进制,'+'就是可读可写,'r'指针在开头,'a'指针在结尾,'w'直接覆盖,'r'文件不存在报错,'w'、'a'文件不存在新建。解码默认为None,就是ASCII编码,一般用utf-8。
模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
python读取文件的几种模式
  • 2.3 关闭文件
    • 用close()方法关闭文件。一般在操作完文件后就要关闭文件。
    • with-as语句,自带关闭功能
  • 2.4 读取文件
    • 通过read()方法来读取
    • 读取两种文件格式:纯文本;二进制文件。
    • read()方法有一个参数,默认为-1全部读取,设置整数,可以读取设置的字符数。
    • readline()方法,主要用于一行一样读取文件;readlines()方法,把文件所有内容按行读取到一个列表中。
f = open('python.txt',encoding='utf-8')
print(f.read())
f.close()
file_name = 'python.txt'
try:
    with open(file_name,'r+',encoding='utf-8') as f:
        while True:
            r = f.read(20)
            if r == '':
                break
            print(r,end='')
except FileNotFoundError:
    print(f'文件不存在,请检查路径下有{file_name}文件!!!')

  • 2.5 写文件
    • 用write()方法来写文件,可以多次使用,每次返回写入字符数量。
    • 需要在open()时设置可写操作,加'+'、'w'、'a'、'x'。
  • 2.6 二进制文件的读写
    • 二进制文件要用'b'这个参数。
with open(file_name,'rb') as obj:
  代码块
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342