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文件操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
