0.写文件会在缓冲区中满时才写入,想要写入需要。flush方法
# f.flush() # 把缓冲区的文字强制写到文件中
1.修改方式(1).简单方式:先打开文件,获取内容,修改内容 ,清空原来的内容,把新的写进去。
f = open('username','a+')
f.seek(0)
all_str = f.read() #获取的字符串 readlines是list
new_str = all_str.replace('5566','7788') #字符串的替代方法
f.seek(0) # 之前操作已经移动到最后需要移动到开头
f.truncate() #清空文件
f.write(new_str)
f.close()
同一加前缀‘syz’(readlines读入)
#syz_niuhanyang,78910 syz_zll,78910 syz_fyr,78910
f = open('username','a+')
f.seek(0)
all_str = ''
for s in f:
new_s ='syz_'+s
all_str=all_str+new_s
f.seek(0)
f.truncate() #清空文件内容
f.write(all_str)
f.close()
#readlines 对于大文件占内存 一次全取进去
修改文件(2) 系统一般都用此文件
#打开2个文件
# a文件
# 写一行写到b文件
# a.txt a.txt.bak
# 删掉a文件,b文件名字改成a文件名
# flower
import os # os模块
with open('words',encoding='utf-8') as fr,open('.words.bak','w',encoding='utf-8') as fw:
for line in fr:
new_line = line.replace('花','flower')
fw.write(new_line)
os.remove('words') #删除文件
os.rename('.words.bak','words') #改名
*writelines 可以写list 自动循环 write只能写入字符串