读文件
open(name,mode,encoding)
#name :是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
#mode:设置打开文件的模式,只读、写入、追加等
#encoding:编码格式
mode的常用三种基础访问模式
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件
a 打开一个文件用于追加。如果该文件已存在,新的内容会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
file=open("C:/Users/Administrator/Desktop/测试.txt","r",encoding="UTF-8")
读操作的相关方法
read()方法
文件对象.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那就表示读取文件中所有的数据
readlines()方法
readlines可以按照行的方式把整个文件中的内容进行一次性的读取,并且返回的是一个列表,其中每一行的数据为一个元素
file=open("C:/Users/Administrator/Desktop/测试.txt","r",encoding="UTF-8")
data=file.readlines()
print(data[0])#输出第一行数据
readline()方法
一次读取一行内容
file=open("C:/Users/Administrator/Desktop/测试.txt","r",encoding="UTF-8")
data=file.readline()
print(data[0])#取出第一个字符
for循环读取文件行
file=open("C:/Users/Administrator/Desktop/测试.txt","r",encoding="UTF-8")
for line in file:
print(line)#输出每一行的数据
close()方法
关闭文件
with open() as f语法
通过该语法打开文件,可以自动关闭
with open("C:/Users/Administrator/Desktop/测试.txt","r",encoding="UTF-8") as file:
for line in file:
print(line)
一个小练习
统计文本中爱这个字的数量
with open("C:/Users/Administrator/Desktop/测试.txt","r",encoding="UTF-8") as file:
count=0
for line in file:
for data in line:
if(data=="爱"):
count+=1
print(count)
写文件
直接写
写文件有大致三部分构成,首先打开文件,其次文件写入,最后是进行内容刷新
注意:直接调用write,内容并没有真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
当调用flush的时候,内容会真正写入文件
这样做是避免频繁的操作硬盘,导致效率下降
with open("C:/Users/Administrator/Desktop/测试.txt","w",encoding="UTF-8") as file:
file.write("asdasdas")
file.close()#close()方法包含了flush()的作用
追加写
将mode中设置成为a,表示在内容后面追加其想要写入的内容
复制文件案例
file1=open("C:/Users/Administrator/Desktop/测试.txt","r",encoding="UTF_8")
file2=open("C:/Users/Administrator/Desktop/测试2.txt","a",encoding="UTF_8")
for line in file1.readlines():
file2.write(line)
file1.close()
file2.close()