Python基础快速复习——文件操作

2 阅读3分钟

Python 文件操作是读写本地文件、处理数据的必备技能,核心围绕打开文件 → 操作文件 → 关闭文件三步,包含基础读写、编码处理、异常处理、高级操作等。

一、打开文件

打开已经存在的文件或者创建一个新文件:

语法:open (name,mode,encoding)
  • name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
  • mode:设置打开文件的模式,访问模式:只读,写,追加等。
  • encoding:编码格式

读相关操作方法:

  • read()方法:文件对象.read(num),num表示从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
  • readlines()方法:readlines可以按照行的方式把整个文件中的内容进行一次读取,并且返回的是一个列表,其中每一行的数据为一个元素。
for line in f.readlines():
    line = line.strip()
    print(line)
    f.close()
for line in open(name,mode,encoding)
    print(line.strip())
#for 循环结束后会自动关闭close
with open (name,mode,encoding) as f:
    f.readlines()
#可以在操作完成后自动关闭close文件

二、文件写入

  • 文件不存在,使用“w”模式,会创建新文件
  • 文件如果存在,使用“w”模式,会将原有内容清空
f = open(name,w)  #打开文件
f.write(内容)  #文件写入
f.flush()      #内容刷新
  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区。
  • 当调用flush的时候,内容会真正写入文件。
  • 这样做是避免频繁的操作硬盘,导致效率下降。(攒一堆,一次性写入文件)

a模式:

f = open(name,a)  #打开文件
f.write(内容)  #文件写入
f.flush  #内容刷新
  • a模式,文件不存在会创建文件
  • a文件,文件存在,会在最后追加写入文件

b模式

  • 只有文本文件可以r,w,a
  • 非文本文件必须带有b,以二进制模式处理

三、异常处理

捕获异常的作用在于:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段。

基本语法:

try:
    可能发生错误的代码
except:
    如果出现异常执行的代码

捕获指定异常:

eg:
try:
    print(name)
except NameError as e:
    print('name变量名称未定义错误')
  • 注意:如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
  • 一般try下方只放一行尝试执行的代码。

通用:

try:
    可能有异常的代码
Expect 异常类型 as 变量:   #Exception:不管是什么异常,都可以捕获
    出现异常的代码
......
expect 异常类型 as 变量:    #只在try内部的代码,才会捕获异常
    出现异常的代码
else:(可选)
    没有异常的处理代码
finally:(可选)
    有没有异常都会处理的代码

异常的传递性: 当函数1中发生异常,并且没有捕获处理这个异常的时候,异常会传递到函数2,当函数2也没有捕获处理这个异常的时候,main函数会捕获这个异常。

  • 当所有的函数都没有捕获异常的时候,程序就会报错。