Python 文件读写

文件读写操作一般步骤,打开文件(需要指定打开的文件路径,文件读写模式,和编码格式,默认编码是GBK),读写文件,关闭文件(在关闭文件的时候,就会自动保存到磁盘上面去了。在没有关闭文件之前,所有的写文件的内容暂时是存储在内存当中)

  1. Python 文件常用打开模式说明

读文件模式

打开模式 模式说明 适用场景
r 以只读模式打开文件,文件指针将放在文件的开头 普通的读取数据
r+ 以可读可写的模式打开文件,文件指针将会放在文件的开头 普通的读取数据
rb 以只读模式且是二进制格式打开一个文件,文件指针将会放在文件的开头 适用于文件,图片,视频,音频等文件读取
rb+ 以读写的模式且是二进制格式打开一个文件,文件指针将会放在文件的开头 适用于文件,图片,视频,音频等文件读取

写文件模式

打开模式 模式说明
a 以只写模式,打开一个文件用于追加内容,如果文件已存在,文件指针会被放在文件的末尾。如果文件不存在,则创建新文件进行写入
a+ 以读写模式,打开一个文件用于追加内容,如果文件已存在,文件指针会被放在文件的末尾。如果文件不存在,则创建新文件进行写入
w 以只写模式,打开一个文件。如果该文件已经存在则会将其内容覆盖。如果文件不存在,则创建新文件
w+ 以读写模式,打开一个文件。如果该文件已经存在则会将其内容覆盖。如果文件不存在,则创建新文件
wb 以只写模式且是二进制格式打开一个文件,如果该文件存在则会将其内容覆盖。如果文件不存在,则创建新文件
wb+ 以读写模式且是二进制格式打开一个文件,如果该文件存在则会将其内容覆盖。如果文件不存在,则创建新文件
ab 以读写模式且是二进制格式打开一个文件,如果该文件存在则文件指针将放在文件内容末尾对内容进行追加。如果文件不存在,则创建新文件

注意:使用二进制格式进行读写的时候,要注意编码的问题,默认是GBK编码。以什么编码格式写进去数据,就要以什么编码格式来读取数据并进行解码操作。

  1. 写文件使用示例

以 w 模式打开一个文件,并写入。同时指定编码格式

f = open('./Test.txt', 'w', encoding='utf-8')
f.write('我喜欢学习python')
f.close()

以 wb 模式打开一个文件,并以二进制的格式进行写入,同时指定编码格式

f = open('./Test.txt', 'wb')
f.write('我喜欢学习python'.encode('utf-8'))
f.close()

  1. 读文件使用示例

以 r 模式打开一个文件,并读取文件的内容。

f=open('./Test.txt','r',encoding='utf-8')
print(f.read()) #读所有的数据
print(f.read(3)) # 每次只读3个字
print(f.readline()) #每次只读一行
print(f.readlines()) #读所有数据,并且返回一个列表
f.close()

以 rb 模式打开一个文件,并以二进制的格式进行读取,拿到数据后,进行二进制数据解码

f=open('./Test.txt','rb')
data=f.read()
print(data.decode('utf-8')) #进行解码,以什么编码格式写进去的数据就以什么编码格式进行解码
f.close()
  1. 使用 with上下文管理 进行文件读取

使用 with 语句,不管在处理文件过程中是否发生异常,with 语句都能保证执行完毕后,会自动释放打开的关联的文件对象。也就是不需要手动关闭文件

语法示例如下:

with open('./Test.txt','rb') as f:
    data=f.read()
    print(data.decode('utf-8'))
  1. 文件定位操作

文件定位,指的是获取当前文件指针读取到的位置,也就是光标位置

文件定位所使用到的函数如下:

  • tesll() 函数,返回文件指针当前所在的位置
  • truncate() 函数,对源文件进行截取操作。例如:truncate(3) 表示,保留当前源文件前3个字符,剩下的统统删除掉。
  • seek(offset,from) 函数,用来控件文件指针定位到其他位置进行操作。offset 表示偏移量单位字节,负数是往回偏移,正数是往前偏移。from 位置:0 表示文件开头,1表示当前位置,2表示文件末尾

使用 seek() 函数注意事项,如若进行往回偏移,那么必须要以二进制的读取格式进行文件读取,否则只能从文件开头计算相对位置(即只能往前偏移)。若强行往回偏移,则会引发异常。

相关推荐

  1. python文件

    2024-07-18 06:06:03       37 阅读
  2. Python文件

    2024-07-18 06:06:03       33 阅读
  3. Python 文件

    2024-07-18 06:06:03       22 阅读
  4. Python--文件

    2024-07-18 06:06:03       22 阅读
  5. python-文本数据

    2024-07-18 06:06:03       31 阅读
  6. python-ConfigParser-配置文件

    2024-07-18 06:06:03       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 06:06:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 06:06:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 06:06:03       58 阅读
  4. Python语言-面向对象

    2024-07-18 06:06:03       69 阅读

热门阅读

  1. PHP + Swoole 与 Go 技术选型对比调研报告

    2024-07-18 06:06:03       17 阅读
  2. Spring Boot 注解 @PostConstruct 介绍

    2024-07-18 06:06:03       24 阅读
  3. 从零手写实现 nginx-31-load balance 负载均衡介绍

    2024-07-18 06:06:03       24 阅读
  4. Elasticsearch数据迁移

    2024-07-18 06:06:03       18 阅读
  5. 构建管理大师:如何在Gradle中配置源代码目录

    2024-07-18 06:06:03       21 阅读
  6. 深入解析:如何在Gradle中配置签名插件

    2024-07-18 06:06:03       21 阅读
  7. LeetCode 算法:括号生成 c++

    2024-07-18 06:06:03       22 阅读
  8. Apache Omid TSO 组件源码实现原理

    2024-07-18 06:06:03       21 阅读
  9. php 方法追踪其被调用的踪迹

    2024-07-18 06:06:03       20 阅读
  10. 山东航空小程序查询

    2024-07-18 06:06:03       23 阅读