python对文件的追加写模式_python(四)文件的读写追加模式

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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值