python读写更新替换文件内容

一、修改原文件方式
二、把原文件内容和要修改的内容写到新文件中进行存储的方式
2.1 python字符串替换的方法,修改文件内容
2.2 python 使用正则表达式 替换文件内容 re.sub 方法替换

AI吧Python
# 传入文件(file),将旧内容(old_content)替换为新内容(new_content)
def replace(file, old_content, new_content):
    content = read_file(file)
    content = content.replace(old_content, new_content)
    rewrite_file(file, content)

# 读文件内容
def read_file(file):
    with open(file, encoding='UTF-8') as f:
        read_all = f.read()
        f.close()

    return read_all

# 写内容到文件
def rewrite_file(file, data):
    with open(file, 'w', encoding='UTF-8') as f:
        f.write(data)
        f.close()

# 替换操作(将test.txt文件中的'Hello World!'替换为'Hello Qt!')
replace(r'test.txt', 'Hello World!', 'Hello Qt!')
import pickle

def ReadAllContent(path):
  f = open(path,"r")
  txt = f.read()
  f.close()
  return txt

def WriteAllContent(path, content):
  file = open(path,"w")
  file.write(content)
  file.close()

def UpdateFile(path,targetContent,replaceContent):
  """
  read file
  if find
    replace
    write to file
  """
  print("src file: {0}".format(path))
  content = ReadAllContent(path)
  contentIndex = content.find(targetContent)
  print("contentIdnex: {0}".format(contentIndex))
  if contentIndex > 0:
    WriteAllContent(path, content.replace(targetContent,replaceContent))
#!/usr/bin/python
# coding=utf-8

import re
import os
s = os.sep
root = os.getcwd()
for root,dirs,files in os.walk(root):
    for name in files:
        if name.endswith(".java"):
            print(os.path.join(root, name))
            a= open(os.path.join(root, name),'r') #打开所有文件
            str = a.read()
            str = str.replace('sdfsdf','sdf')
            b = open(os.path.join(root, name),'w')
            b.write(str) #再写入
            b.close() #关闭文件

一、修改原文件方式

def alter(file,old_str,new_str):
    """
    替换文件中的字符串
    :param file:文件名
    :param old_str:就字符串
    :param new_str:新字符串
    :return:
    """
    file_data = ""
    with open(file, "r", encoding="utf-8") as f:
        for line in f:
            if old_str in line:
                line = line.replace(old_str,new_str)
            file_data += line
    with open(file,"w",encoding="utf-8") as f:
        f.write(file_data)
 
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 方法替换

import re,os
def alter(file,old_str,new_str):
 
    with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
        for line in f1:
            f2.write(re.sub(old_str,new_str,line))
    os.remove(file)
    os.rename("%s.bak" % file, file)
alter("file1", "admin", "password")

发表评论

电子邮件地址不会被公开。 必填项已用*标注