Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)

欢迎关注博主 python老鸟 或 前往 『Python自学网』, 从基础入门免费课程开始,逐步深入学习python全栈体系课程,适合新手入门到精通全栈开发。


免费专栏传送门:《Python基础教程》



目录

一、操作文件的函数/方法

二、read方法——读取文件

2.1》读取文件步骤

2.2》代码示例以及可能遇到的打开文件编码错误

1)读取python文件内容时出现以下错误:

2.3》文件指针

三、open函数——打开文件方式

3.1》语法格式如下

3.2》第二个参数是打开的模式mode

1、w = write 写

2、a = append,追加

四、readline方法——按行读取文件内容

4.1》应用场景

4.2》readline方法

4.3》读取大文件的正确步骤


一、操作文件的函数/方法

在python中要操作文件需要记住1个函数3个方法

序号

函数/方法

说明

01

open

打开文件,并且返回文件操作对象

02

read

将文件内容读取到内存

03

write

将制定内容写入文件

04

close

关闭文件

二、read方法——读取文件

2.1》读取文件步骤

1、open函数第一个参数是文件名称(注意:文件名是区分大小写的),包括路径;

  • 如果文件存在,返回文件操作对象(利用这个对象操作read方法)
  • 如果文件不存在,会抛出异常

2、read方法可以一次性读入并返回文件的所有内容

3、close方法负责关闭文件(利用这个对象操作close方法)

  • 如果忘记关闭文件会造成系统资源消耗,而且会影响到后续对文件的访问

2.2》代码示例以及可能遇到的打开文件编码错误

准备工作:准备一个文件名叫Hello的text文件,在里面面随便拿写点内容,后续好编写代码运行。

建立文件步骤:鼠标右击左侧的pythonProject——》New——》点击File——》写上文件名——》确定即可——》双击文件打开文件编写内容(我的内容是:Hello World!我是python自学网,欢迎你~)。如下图:

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第1张图片

1)读取python文件内容时出现以下错误

UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 16: illegal multibyte sequence

代码编写:

# 1. 打开文件
file = open("HELLO")

# 2. 读取
text = file.read()
print(text)

# 3. 关闭
file.close()

执行结果:

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第2张图片

原因:

python中默认的编码方式为gbk,而Windows的默认编码方式为UTF-8,所以设置python编码方式为UTF-8就OK了~

修改代码:加上加上encoding="UTF_8"

# 1. 打开文件
file = open("HELLO", encoding="UTF-8")

# 2. 读取
text = file.read()
print(text)

# 3. 关闭
file.close()

修改后执行结果:

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第3张图片

提示:

  1. 在开发中,通常会先编写打开关闭的代码,再编写中间针对的读和写操作~
  2. 如果不发生编码错误,第一个编写的代码是可以正常运行的,就不需要加上加上encoding="UTF-8"

2.3》文件指针

  • 文件指针标记 从哪个位置开始读取数据
  • 第一次打开文件时,通常文件指针会指向文件的开始位置
  • 当执行了read方法后,文件指针会移动到读取内容的末尾
    • 默认情况下会移动到文件末尾

提问:

如果执行了一次read方法读取了所有内容,那么在此调用read方法还能获得到内容吗?

答案:

不能。因为第一次读取后文件指针移动到了文件的末尾,再次调用不会读取到任何的内容

读取文件后文件指针会改变:代码验证:

# 1. 打开文件
file = open("HELLO", encoding="UTF-8")

# 2. 读取
text = file.read()
print(text)

print("+" * 30)
text = file.read()
print(text)

# 3. 关闭
file.close()

执行结果:在分隔线下方并没有打印出文件内容

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第4张图片

利用内容长度再来验证一下:len(text)

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第5张图片

总结: read方法执行后,会把文件指针移动到文件的末尾,移动到末尾后再调用read方法就获取不到内容了。

三、open函数——打开文件方式

open函数默认以只读方式打开文件,并且返回文件对象

3.1》语法格式如下

file = open("文件名", "访问方式")

3.2》第二个参数是打开的模式mode

访问方式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。

如果文件不存在,会抛出异常

w

以只写方式打开文件。

如果文件存在,会被覆盖。如果文件不存在,则创建新文件。

a

以追加方式打开文件件。

如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入。

r+

以读写方式打开文件。

文件的指针将会放在文件的开头。如果文件不存在,抛出异常。

w+

以读写方式打开文件。

如果文件存在会被覆盖。如果文件不存在,创建新文件

a+

以读写方式打开文件。

如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入。

代码示范:

1、w = write 写

# 1. 打开文件
file = open("HELLO", "w", encoding="UTF-8")

# 2. 写入
text = file.write("Python自学网")
print(text)

# 3. 关闭
file.close()

执行结果:打印写入的内容返回的是长度,另外文件内容被替换了

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第6张图片  Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第7张图片

2、a = append,追加

代码:

# 1. 打开文件
file = open("HELLO", "a", encoding="UTF-8")

# 2. 写入
text = file.write("Python自学网123")

# 3. 关闭
file.close()

执行结果:控制台没有数据,在HELLO文件新增加了Python自学网123

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第8张图片

提示:

后面三个只需有印象就好了,几乎不会用到,因为后三种会频繁的移动文件指针,会影响文件的读写效率,开发中很多的时候会以只读、只写的方式来操作文件。

四、readline方法——按行读取文件内容

4.1》应用场景

read方法默认会把文件的所有内容一次性读取到内存,如果文件太大,对内存的占用会非常严重,此时需要解决可以利用readline方法再利用循环一行一行的把大文件读取完,一次读取一行内容不会给内存造成太大压力。


4.2》readline方法

  1. readline方法可以一次读取一行内容
  2. 方法执行后,会把文件指针移动到下一行,准备再次读取

4.3》读取大文件的正确步骤

# 1. 打开文件
file = open(“文件名”)

while True:
    # 读取一行代码
    text = file.readline()
    # 判断是否督导内容
    if not text:
        break
    # 每读取一行的末尾已经有了一个 '\n'
    print(text, end="")

# 3. 关闭文件
file.close()

代码示例:

准备工作:把HELLO文件内容修改成如下,方便观察

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第9张图片

代码:

# 1. 打开文件
file = open("HELLO", encoding="UTF_8")

while True:
    # 读取一行代码
    text = file.readline()
    # 判断是否读到内容
    if not text:
        break
    # 每读取一行的末尾已经有了一个 '\n'
    print(text, end="")

# 3. 关闭文件
file.close()

执行结果:

Python文件操作:操作文件的1个函数3个方法使用、readline按行读取文件、文件指针(详细图文)_第10张图片

本篇就到这里吧,算是告一段落了,主要介绍Python文件的操作方法使用,分别是打开、读、写、关闭,文件打开模式,以及按行读取文件内容的方法使用操作,还有一个小扩展就是文件指针相关小知识,知识点虽然多但是不会很复杂,属于基础知识。下一篇是文件读写案例—复制大小文件,敬请期待!

如果觉得对你有所帮助就多多支持一下博主吧,让我保持更多的创作动力!欢迎补充~

你可能感兴趣的:(python基础教程,python,后端,文件读写,文件操作)