• Python文件操作:读取、打开、写入、关闭、按行读取、文件指针(附零基础学习资料)


    前言

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

    在Python中要操作文件需要记住1个函数和3个方法:(文末送福利)

    序号

    函数/方法

    说明

    01

    open

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

    02

    read

    将文件内容读取到内存

    03

    write

    将制定内容写入文件

    04

    close

    关闭文件

    二、read方法——读取文件

    2.1》读取文件步骤

    open函数第一个参数是文件名称(注意:文件名是区分大小写的),包括路径;
    如果文件存在,返回文件操作对象(利用这个对象操作read方法)
    如果文件不存在,会抛出异常
    2、read方法可以一次性读入并返回文件的所有内容

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

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

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

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

    建立文件步骤:鼠标右击左侧的pythonProject——》New——》点击File——》写上文件名——》确定即可——》双击文件打开文件编写内容(我的内容是:Hello World!我是python自学网,欢迎你~)。如下图:
    在这里插入图片描述
    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中默认的编码方式为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()
    修改后执行结果:
    在这里插入图片描述
    提示:

    在开发中,通常会先编写打开和关闭的代码,再编写中间针对的读和写操作~
    如果不发生编码错误,第一个编写的代码是可以正常运行的,就不需要加上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()
    执行结果:在分隔线下方并没有打印出文件内容
    在这里插入图片描述
    利用内容长度再来验证一下:len(text)
    在这里插入图片描述
    总结: 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()
    执行结果:打印写入的内容返回的是长度,另外文件内容被替换了
    在这里插入图片描述

    2、a = append,追加

    代码:

    #1. 打开文件
    file = open(“HELLO”, “a”, encoding=“UTF-8”)
    #2. 写入
    text = file.write(“Python自学网123”)
    #3. 关闭
    file.close()
    执行结果:控制台没有数据,在HELLO文件新增加了Python自学网123
    在这里插入图片描述
    提示:

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

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

    4.1》应用场景

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

    4.2》readline方法

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

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

    #1. 打开文件
    file = open(“文件名”)
    while True:
    #读取一行代码
    text = file.readline()
    #判断是否督导内容
    if not text:
    break
    #每读取一行的末尾已经有了一个 ‘\n’
    print(text, end=“”)
    #3. 关闭文件
    file.close()
    代码示例:

    准备工作:把HELLO文件内容修改成如下,方便观察
    在这里插入图片描述
    代码:

    #1. 打开文件
    file = open(“HELLO”, encoding=“UTF_8”)
    while True:
    #读取一行代码
    text = file.readline()
    #判断是否读到内容
    if not text:
    break
    #每读取一行的末尾已经有了一个 ‘\n’
    print(text, end=“”)
    #3. 关闭文件
    file.close()
    执行结果:

    在这里插入图片描述
    本篇就到这里吧,Python文件的操作方法使用算是告一段落了,敬请期待下一篇

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

    知道你对Python感兴趣的话,便推荐了这套python学习资料,毕竟小编也是用这套方法自学的

    对于0基础小白入门:

    如果你是零基础小白,想快速入门Python是可以考虑培训的。

    一方面是学习时间相对较短,学习内容更全面更集中。

    零基础Python学习资源介绍

    👉Python学习路线汇总👈

    Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

    👉Python必备开发工具👈

    温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

    👉Python学习视频600合集👈

    观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

    👉实战案例👈

    光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

    👉100道Python练习题👈

    检查学习结果。

    👉面试刷题👈



    在这里插入图片描述

    资料领取

    这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
    在这里插入图片描述

    好文推荐

    了解python的前景: https://blog.csdn.net/weixin_49892805/article/details/127196159

    python有什么用: https://blog.csdn.net/weixin_49892805/article/details/127214402

  • 相关阅读:
    基于keras与tensorflow手工实现ResNet50网络
    记录一下~~~Linux配置定时任务备份数据库dmp文件
    优雅地处理Python中的条件分支:字典映射、函数组合与match-case语句
    高性能存储 SIG 月度动态:erofs 新增支持多个重要特性,持续构建容器场景竞争力
    【软件测试】不想变成打螺丝的测试打工人,自我改变提升自动化测试......
    三维模型3DTile格式轻量化云端处理技术方法分析
    java基于springboot的插画漫画约稿网站 vue
    useState源码解读 及 手撕 useState 实现
    丹麦能源袭击预示着更关键的基础设施成为目标
    【项目实战:核酸检测平台】第二章 大卸八块
  • 原文地址:https://blog.csdn.net/weixin_49892805/article/details/127537291