1.文件的读模式:也是默认的方式,
f=open(‘文件路径\文件名’,’r’,encoding=’utf-8’):以读的模式打开一个文件,这里的’r’也可以不写,读模式是默认模式,encoding=’utf-8’是防止中文乱码。打开文件,然后有一系列的操作,但是打开的语句太长,所以赋值给一个变量,这样方便之后的操作。
R模式:只能读,读不存在的文件会报错,执行写的方法会报错。
2. W模式:只能写,不能读,读文件会报错。写一个不存在的文件,会新建一个文件,然后写。写一个已经存在的文件,会先清空文件内容再写
3. a 模式:追加模式,只能写不能读。写一个已经存在的文件,会在文件的后面写内容。追加一个不存在的文件,会创建一个文件,然后写。
4. R+模式:可以写,也可以读,但写的话是在开头写,要把其他的字符踢掉,给写的字符腾位子。打开不存在的文件会报错
5. W+模式:可以写,也可以读。因为‘W’会先把文件里面的内容清空掉,再去读,读到的内容就是空
6.a+ 模式:文件指针默认在末尾。
7. 可以使用a+和seek(0)方法,是文件指针放在文件的开头
8.read():读完文件的所有内容
9.readline():按行读,读一行
10. readlines():读完整个文件,写在list里面,每一行就是一个元素
f = open(‘a.txt’,’r’,encoding=’utf-8′)#打开模式r w a
result1 = f.readline()#读文件,一次只读一行
print(result1)
result= f.read()#读文件,获取文件里的全部内容
result2 = f.readlines()#读文件,把文件里的内容放到一个list里,每一行是一个元素#f.read(),f.readlines()这两个方法当文件很大时,会占用很大的内存
print(result2)#处理大文件的时候,循环读取
for line inf:print(line)
f.close()#关闭文件
11. write(‘’s‘’):把字符串写在文件里,只能写字符串
12. writelines():可以把一个列表中数据写进文件里
f1 = open(‘a1.txt’,’w’,encoding=’utf-8′)
f1.write(’12’)#这个是一次写一行#print(f.read())
l = [‘fdslfjs\n’,’fdsrewr\n’,’fdsfsdfrere\n’]
f1.writelines(l)#将列表写到文件中#循环写入,和writelines()的功能一样#for i in l:
#f1.write(i)
f1.close()
13.删除文件内容
with open(‘数据.txt’,’r+’,encoding=’utf-8′) as f:
f.truncate()#清空文件内容
f.flush() #不管缓冲区有没有满,立即更新到磁盘
14.修改文件有两种方法:
#1、简单粗暴直接的#1、读取文件所有内容#2、replace#3、清空文件#4、把新的内容写进去#修改小文件的话可以用这种方式
with open(‘数据.txt’,’r+’,encoding=’utf-8′) as f:
content=f.read()
new_content= content.replace(‘100′,’1000000000000’)
f.seek(0)
f.truncate()
f.write(new_content)
f.flush()#立即刷新缓冲区的内容,写到磁盘上
#2、两个文件操作
#1、r模式打开a文件,w模式打开b文件
#2、逐行读取a文件的内容,读完之后替换内容
#3、把替换完的内容写到b文件里面
#4、把a文件删掉,把b文件的名字改成a文件
importos
with open(‘数据.txt’,encoding=’utf-8′) as f1, open(‘数据2.txt’,’w’,encoding=’utf-8′) as f2:for line inf1:
new_line= line.replace(‘4′,’444444’)
f2.write(new_line)
os.remove(‘数据.txt’)
os.rename(‘数据2.txt’,’数据.txt’)