在学习使用open函数打开文件并对其进行操作时,我们需要了解打开文件并且对文件进行操作的过程是怎么样的,还需要了解打开文件的常见模式,以及对文件句柄操作的的常用方法等等。其中难点是屡清楚文件的编码问题。

  文件处理的流程:

    1、打开文件,得到文件句柄并将其赋值给一个变量

    2、通过文件句柄对文件进行操作(其实文件句柄本身是一个迭代器对象。)

    3、关闭文件(即释放操作系统分配的内存空间)

#1、以只读模式打开文件,获得文件句柄并赋值给f变量
f =open("test.txt","r",encoding="utf-8")
#2、读取文件
print(f.read())
#3、关闭文件
f.close()

  从上述示例中,“r”->只读模式打开文件,那我们接下来看一下文件打开有哪些模式:

  文件模式

1、打开文件的模式有

  • r-->只读模式。默认模式,文件必须存在,不存在则抛出异常。
  • w-->只写模式。不可读,文件存在则删除文件内容,不存在则创建。
  • a-->追加模式。可读,文件存在则追加在文件末尾,不存在则创建。

 2、打开非文本文件时,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)

  • rb-->以字节的方式读取文件
  • wb-->以字节的方式写入文件
  • ab-->以字节的方式追加入文件
 3、"+" 表示可以同时读写某个文件
  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

   在了解打开文件的各种打开模式时,我们需要对文件的编码有一定的了解。

 

  文件的字符编码

    在了解文件编码时我们需了解一下几个点:

    1、由于文件在硬盘中是以字节的方式存储的,而故在打开文本文件时需要需要指定文件的编码encoding="编码类型",写入文件也时需要指定译码格式,encoding="编码类型。"

    2、文件以什么编码类型写入,必须以什么编码读取。即若文件若以“utf-8”的编码类型写入,就必须以“utf-8”的编码类型读取,否则会发生乱码。

    3、一个文本文件内,只允许有一种编码类型,否则也会发生乱码。

    4、字符串数据类型转为字节格式:encode(),字节格式转为字符串数据类型:decode()。

   注:b模式,无需指定编码类型,因为其本身就是直接从内存中读取字节格式,而若想将读取的字节编码以字符串类型显示则需要译码成指定格式,即decode()。

#创建新文件buffer,指定编码格式为utf-8
f1=open("buffer.txt","w",encoding="utf-8")
f1.write("hello world.")
f1.write("你好世界")
f1.close()

#打开该文件,若以其他编码格式打开则会出现乱码
f2=open("buffer.txt","r",encoding="gbk")
print(f2.read())
f2.close()

#输出为:hello world.浣犲ソ涓栫晫

 

  实例:

  r模式-->只读模式,读取的文件必须是事先存在的,否则报错

1 #r-->只读模式
2 f =open("buffer.txt","r",encoding="utf-8")
3 # print(f.read()) #read->读取文件内容,读取完文件句柄停留在最后
4 # print(f.readline(),end="") #逐行读取,读完后文件句柄停留在下一行的行首
5 # print(f.readline())
6 print(f.readlines()) #逐行读取,并且将每行添加至空列表中,并返回列表
7 f.close()
r模式

相关文章:

  • 2022-02-15
  • 2022-12-23
  • 2021-12-16
  • 2021-11-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
猜你喜欢
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2021-07-13
  • 2021-11-23
相关资源
相似解决方案