文件操作
基本规则:
文件操作 打开文件:open(参数1,参数2,参数3) 参数1:指定文件 参数2:打开的模式 r:读取模式,如果被打开的文件不存在,直接报错 a:追加写入(在文件中原有的内容最后追加写入),被打开的文件不存在,会自动创建一个 w:覆盖写入(清空文件中原有的内容),被打开的文件不存在,会自动创建一个 # 操作一些图片,视频等文件 rb:读取模式,如果被打开的文件不存在,直接报错(以二进制模式去打开文件) ab:追加写入(在文件中原有的内容最后追加写入),被打开的文件不存在,会自动创建一个(以二进制模式去打开文件) wb:覆盖写入(清空文件中原有的内容),被打开的文件不存在,会自动创建一个(以二进制模式去打开文件) 参数3:编码方式("utf-8")
1.打开一个文件
text文件内容
# 打开一个文件,返回一个操作的句柄
f = open(file="text.txt", mode="r", encoding="utf-8")
print(f) #显示打印内容的信息
结果:
2.读取文件内容的三种方式
(1)读取全部内容 read()
# 打开一个文件,返回一个操作的句柄
f = open(file="text.txt", mode="r", encoding="utf-8")
# 读取内容
# 第一种:读取全部的内容
content = f.read()
print(content)
结果:
(2)读取文件的一行
# 打开一个文件,返回一个操作的句柄
f = open(file="text.txt", mode="r", encoding="utf-8")
# #第二种:读取一行内容,默认为第一行
data = f.readline()
print(data)
# #参数代表这一行显示多少个字出来
data = f.readline(10)
print(data)
结果:
读取文件指定行的操作
#读取指定的某一行,使用linecache库
import linecache
file_path = r'D:K:\老师课程作业\pyclass\柠檬班\py24_08day\03文件操作\text.txt'#文件路径
line_number = 5#指定的行
getline = linecache.getline(file_path, line_number)
print(getline)
结果:
(3)把所有的内容按行读取出来放在列表中
# 打开一个文件,返回一个操作的句柄
f = open(file="text.txt", mode="r", encoding="utf-8")
#第三种:把所有的内容按行读取出来放在列表中
data2 = f.readlines()
print(data2)
结果:
按下标可以拿出对应的数据
#第三种:把所有的内容按行读取出来放在列表中
data2 = f.readlines()
print(data2)
print(data2[1])#按下标拿出对应的数据
结果:
3.文件写入
write
# 文件写入:写入前一定要先打开
# r:读取模式,如果被打开的文件不存在,直接报错
# a:追加写入(在文件中原有的内容最后追加写入),被打开的文件不存在,会自动创建一个
# w:覆盖写入(清空文件中原有的内容),被打开的文件不存在,会自动创建一个
#追加写入
f = open(file="text.txt", mode="a", encoding="utf-8")
f.write("python24期666")
#覆盖写入
#f = open('text.txt','w',encoding='utf-8')
结果:
txt文本
4.图片视频的写入操作
# 操作一些图片,视频等文件(# 以二进制模式去打开文件)
# rb: 读取模式, 如果被打开的文件不存在,直接报错(以二进制模式去打开文件)
# ab: 追加写入(在文件中原有的内容最后追加写入),被打开的文件不存在,会自动创建一个(以二进制模式去打开文件)
# wb: 覆盖写入(清空文件中原有的内容),被打开的文件不存在,会自动创建一个(以二进制模式去打开文件)
f = open('bj01.png', 'rb')
print(f.read())
结果:
5.关闭文件
打开文件后操作完后一般都需要去关闭文件
#关闭文件
f = open('bj01.png', 'rb')
f.close()
结果:
6.with
# with:开启open返回文件句柄对象的上下文管理器(执行完with的代码语句之后,会自动关闭文件)
with open(file="text.txt", mode="r", encoding="utf-8") as f:
c = f.read()
print(c)
结果:
来源:CSDN
作者:seak海
链接:https://blog.csdn.net/qq_38224014/article/details/104143486