语法
变量名 = open(文件名,打开模式)
打开模式
文件的打开模式 描述 'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError 'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖 'x' 创建写模式,文件不存在则创建,存在则返回FileExistsError 'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容 'b' 二进制文件模式 't' 文本文件模式,默认值 '+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
例如
#在路径下面创建text.py文件
f = open("text.txt","x")
#在桌面上创建test。windows下面\有转义的意思
f = open("C:\\Users\\wangyujun\\Desktop\\text.txt","x")
#想要打开的文件进行什么操作,就使用是什么模式
f = open("text.txt","r")
#关闭文件
f.close()
-
必须关闭文件,因为每次操作都是保存在内存中,并没有真正保存到文件中
读文件
读文件常用方法
操作方法 描述 <f>.read() 读入全部内容 <f>.readline(size=-1) 读入一行内容,如果给出参数,读入该行前size长度 <f>.readlines(hint=-1) 读入文件所有行,以每行为元素形成列表 如果给出参数,读入前hint行
- 注意:如果文件是中文,打开之后报错。就按照一下步骤修改
- 文件--->首选项--->设置--->搜索encoding---->simplified chiese (GBK)
例如
#首先我们要打开一个文件,需要有一个文件的对象
f = open("test.txt","r")
# <f>.read() | 读入全部内容
#r1=f.read()
#print(r1)
# <f>.readline(size) | 读入一行内容,如果给出参数,读入该行前size长度
r2 = f.readline()
print(r2) #伟大的中国
r3 = f.readline(2)
print(r3) #伟大
# <f>.readlines(hint=-1) | 读入文件所有行,以每行为元素形成列表 如果给出参数,读入前hint行
r4 = f.readlines()
print(r4) #['伟大的中国\n', '伟大的人民\n']
#第四种
for i in f.readlines():
print(i)
写文件
写文件的常用方法
操作方法 描述 <f>.write(s) 向文件写入一个字符串或字节流 <f>.writelines(lines) 将一个元素全为字符串的列表写入文件 <f>.seek(offset) 改变当前文件操作指针的位置,offset含义如下: 0 – 文件开头; 1 – 当前位置; 2 – 文件结尾
例如
#首先我们要打开一个文件,需要有一个文件的对象
f = open("test.txt","w")
# <f>.write(s) 向文件写入一个字符串或字节流
s = "少年强则国强"
f.write(s)
# <f>.writelines(lines) 将一个元素全为字符串的列表写入文件
l = ["馒头","大米","红烧肉"]
f.writelines(l)
# <f>.seek(offset) 改变当前文件操作指针的位置,offset含义如下: 0 – 文件开头; 1 – 当前位置; 2 – 文件结尾
f.seek(2)
f.write("zuguo")
#读文件也可以这样操作,但是这里的文本必须是英文,编码格式必须是UTF-8
#首先我们要打开一个文件,需要有一个文件的对象
f = open("test.txt","r+")
#这里的指针是指第一行的从几到几
#下标是从0开始的
f.seek(4)
r1 = f.readline()
print(r1)
删除文件
import os
os.remove("test.txt")
#大家先知道怎么使用,我们下一节课就讲解os模块
with语句
语法
with open(文件名) as 别名
例如
"""
f = open("f.txt","rb")
a = f.readline()
print(a)
#打开一个文件,每一次都需要关闭文件
f.close()
"""
#和上面是一样的,只是不需要去关闭流
with open("f.txt","rb") as f:
a = f.readline()
print(a)