zoukankan      html  css  js  c++  java
  • Python 修改文件内容

    python 修改文件内容

    一、修改原文件方式

     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字符串替换的方法,修改文件内容

     1 import os
     2 def alter(file,old_str,new_str):
     3     """
     4     将替换的字符串写到一个新的文件中,然后将原文件删除,新文件改为原来文件的名字
     5     :param file: 文件路径
     6     :param old_str: 需要替换的字符串
     7     :param new_str: 替换的字符串
     8     :return: None
     9     """
    10     with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
    11         for line in f1:
    12             if old_str in line:
    13                 line = line.replace(old_str, new_str)
    14             f2.write(line)
    15     os.remove(file)
    16     os.rename("%s.bak" % file, file)
    17 
    18 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")
  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/smile1/p/11530671.html
Copyright © 2011-2022 走看看