Python中常见的文件操作合集(读取、编码和关闭)

 更新时间:2025年11月21日 08:53:26   作者:钮祜禄.爱因斯晨  
这篇文章主要为大家详细介绍了Python中常见的文件操作,包括读取、编码和关闭等功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

文件的编码

一些文本文件是通过编码技术将内容翻译成0和1存入

编码技术:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别的内容

计算机中有很多编码类型:比如UTF-8,GBK,Big5

UTF-8是目前最常用的编码

文件的读取

文件操作:打开、关闭、读取

open()打开函数:打开一个存在的文件,或者创建一个新文件

open(name,mode,encoding)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)

mode:设置打开文件的模式(访问模式):只读、写入、追加

encoding:编码格式(推荐使用UTF-8)

f=open('python.txt','r',encoding='UTF-8')
#encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定

注意:这个f就是文件对象

f=open("F:/Desktop/test.txt","r",encoding="utf-8")
print(type(f))

mode常用的三种基础访问模式

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从头开始编辑,原有的内容会被删除。若文件不存在,创建新文件
a打开一个文件用于追加。如文件存在,新内容会写入到已有内容以后。如果该文件不存在,创建新文件进行写入。

读操作的方法

read()方法:文件对象.read(num)

num表示要从文件中读取的数据长度(单位是字节),如果没有传入num,那么就表示读取文件中的所有数据

f=open("F:/Desktop/test.txt","r",encoding="utf-8")
print(type(f))
print(f.read(11))
print(f.read())

同时使用两个read时,会从上面读取后的结果继续读,不是从头

readlines()方法

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

f=open("F:/Desktop/test.txt","r",encoding="utf-8")
print(type(f))
#print(f.read(11))
#print(f.read())
print(f.readlines())

readline方法

一次读取一行内容

f=open("F:/Desktop/test.txt","r",encoding="utf-8")
print(type(f))
#print(f.read(11))
#print(f.read())
#print(f.readlines())
line1 = f.readline()
line2 = f.readline()
print(line1)
print(line2)

文件关闭

在操作文件时,打开的文件会占用系统资源,因此使用完毕后必须及时关闭,否则可能导致资源泄露,甚至出现文件被锁定无法进行其他操作(如删除、修改)的情况。

关闭文件可以通过文件对象的 close() 方法实现:

# 打开文件
f = open("F:/Desktop/test.txt", "r", encoding="utf-8")
# 执行读取操作
content = f.read()
print(content)
# 关闭文件
f.close()

注意:如果忘记调用 close() 方法,文件可能会保持打开状态,尤其在程序运行时间较长或频繁操作文件时,可能引发系统资源耗尽的问题。

写操作(mode=‘w’)

当需要向文件中写入内容时,可以使用 w 模式(写入模式)打开文件。w 模式的特点如下:

  • 若文件已存在,原有内容会被完全清空,新内容从文件开头开始写入;
  • 若文件不存在,则自动创建一个新文件。

写入内容主要通过 write() 方法实现,该方法接收字符串作为参数,将内容写入文件:

# 以写入模式打开文件
with open("F:/Desktop/test.txt", "w", encoding="utf-8") as f:
    # 写入单行内容
    f.write("这是通过 write 方法写入的第一行内容\n")
    # 写入多行内容(需手动添加换行符 \n)
    f.write("第二行内容\n")
    f.write("第三行内容")

运行上述代码后,test.txt 文件中的内容会被更新为:

这是通过 write 方法写入的第一行内容
第二行内容
第三行内容

提示:write() 方法不会自动添加换行符,若需要换行,需手动在字符串末尾添加 \n

追加操作(mode=‘a’)

如果希望在已有文件的末尾添加新内容,而不覆盖原有内容,可以使用 a 模式(追加模式)。a 模式的特点如下:

  • 若文件已存在,新内容会被添加到文件末尾;
  • 若文件不存在,则自动创建新文件并写入内容。

追加内容同样使用 write() 方法:

# 以追加模式打开文件
with open("F:/Desktop/test.txt", "a", encoding="utf-8") as f:
    f.write("\n这是追加的第一行内容")  # 从文件末尾开始写入
    f.write("\n这是追加的第二行内容")

假设之前 test.txt 已有内容:

这是通过 write 方法写入的第一行内容
第二行内容
第三行内容

执行追加操作后,文件内容会变为:

这是通过 write 方法写入的第一行内容
第二行内容
第三行内容
这是追加的第一行内容
这是追加的第二行内容

之前 test.txt 已有内容:

这是通过 write 方法写入的第一行内容
第二行内容
第三行内容

执行追加操作后,文件内容会变为:

这是通过 write 方法写入的第一行内容
第二行内容
第三行内容
这是追加的第一行内容
这是追加的第二行内容

注意:a 模式下,文件指针默认位于文件末尾,因此写入的内容会直接追加到最后,不会影响原有内容。

到此这篇关于Python中常见的文件操作合集(读取、编码和关闭)的文章就介绍到这了,更多相关Python文件操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中使用matplotlib库绘制各种图

    Python中使用matplotlib库绘制各种图

    这篇文章主要介绍了Python中使用matplotlib库绘制各种图方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python类的绑定方法和非绑定方法实例解析

    Python类的绑定方法和非绑定方法实例解析

    这篇文章主要介绍了Python类的绑定方法和非绑定方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 解决Python3.8运行tornado项目报NotImplementedError错误

    解决Python3.8运行tornado项目报NotImplementedError错误

    这篇文章主要介绍了Python3.8运行tornado项目报NotImplementedError错误,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 详解用python自制微信机器人,定时发送天气预报

    详解用python自制微信机器人,定时发送天气预报

    这篇文章主要介绍了用python自制微信机器人,定时发送天气预报,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • vscode 与pycharm 配置 autopep8自动格式化代码

    vscode 与pycharm 配置 autopep8自动格式化代码

    autopep8是一个可以将Python代码自动排版为PEP8风格第三方包,使用它可以轻松地排版出格式优美整齐的代码,这里就为大家分享一下具体的方法
    2023-09-09
  • python绘制BA无标度网络示例代码

    python绘制BA无标度网络示例代码

    今天小编就为大家分享一篇python绘制BA无标度网络示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 用matplotlib画等高线图详解

    用matplotlib画等高线图详解

    这篇文章主要介绍了用matplotlib画等高线图详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python序列循环移位的3种方法推荐

    Python序列循环移位的3种方法推荐

    下面小编就为大家分享一篇Python序列循环移位的3种方法推荐,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python处理中文标点符号大集合

    Python处理中文标点符号大集合

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏,下面小编给大家带来了Python处理中文标点符号大集合,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-05-05
  • numpy.where() 用法详解

    numpy.where() 用法详解

    这篇文章主要介绍了numpy.where() 用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论