修改文件

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只能写入字符串

原文地址:https://www.cnblogs.com/cslw5566/p/8858737.html