一、修改原文件方式
1 def alter(file,old_str,new_str): 2 """ 3 替换文件中的字符串 4 :param file:文件名 5 :param old_str:就字符串 6 :param new_str:新字符串 7 :return: 8 """ 9 file_data = "" 10 with open(file, "r", encoding="utf-8") as f: 11 for line in f: 12 if old_str in line: 13 line = line.replace(old_str,new_str) 14 file_data += line 15 with open(file,"w",encoding="utf-8") as f: 16 f.write(file_data) 17 18 alter("file1", "09876", "python")
二、把原文件内容和要修改的内容写到新文件中进行存储的方式
2.1 python字符串替换的方法,修改文件内容
import os def alter(file,old_str,new_str): """ 将替换的字符串写到一个新的文件中,然后将原文件删除,新文件改为原来文件的名字 :param file: 文件路径 :param old_str: 需要替换的字符串 :param new_str: 替换的字符串 :return: None """ with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2: for line in f1: if old_str in line: line = line.replace(old_str, new_str) f2.write(line) os.remove(file) os.rename("%s.bak" % file, file) alter("file1", "python", "测试")
2.2 python 使用正则表达式 替换文件内容 re.sub 方法替换
1 import re,os 2 def alter(file,old_str,new_str): 3 4 with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2: 5 for line in f1: 6 f2.write(re.sub(old_str,new_str,line)) 7 os.remove(file) 8 os.rename("%s.bak" % file, file) 9 alter("file1", "admin", "password")