用python修改文件内容修改txt内容的3种方法

用python修改文件内容修改txt内容的3种方法

方法一、修改原文件方式

def updateFile(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)

updateFile(r"D:\zdz\myfile.txt", "zdz", "daziran")#将"D:\zdz\"路径的myfile.txt文件把所有的zdz改为daziran

方法二、python字符串替换的方法,修改文件内容,把原文件内容和要修改的内容写到新文件中进行存储的方式

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import os
def updateFile(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)

updateFile(r"D:\zdz\myfile.txt", "zdz", "daziran")#将"D:\zdz\"路径的myfile.txt文件把所有的zdz改为daziran

方法三、python 使用正则表达式 替换文件内容 re.sub 方法替换

import re,os
def updateFile(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)
    
updateFile(r"D:\zdz\myfile.txt", "zdz", "daziran")#将"D:\zdz\"路径的myfile.txt文件把所有的zdz改为daziran
有多方法可以使用Python修改txt文件。以下是三常见的方法: 1. 使用字符串替换方法:这方法是将原文件内容和要替换的内容写入一个新文件中,并将原文件删除,将新文件重命名为原文件名。代码如下: ```python import os def updateFile(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: if old_str in line: line = line.replace(old_str, new_str) f2.write(line) os.remove(file) os.rename("%s.bak" % file, file) updateFile(r"D:\zdz\myfile.txt", "zdz", "daziran") ``` 该方法将"D:\zdz\"路径下的myfile.txt文件中的所有"zdz"替换为"daziran"。 2. 使用正则表达式替换方法:这方法使用re.sub方法来替换文件内容。代码如下: ```python import re import os def updateFile(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) updateFile(r"D:\zdz\myfile.txt", "zdz", "daziran") ``` 该方法同样将"D:\zdz\"路径下的myfile.txt文件中的所有"zdz"替换为"daziran"。 3. 直接修改文件方法:这方法直接在原文件修改要替换的字符串,并将修改后的内容覆盖原文件。代码如下: ```python def updateFile(file, old_str, new_str): 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) updateFile(r"D:\zdz\myfile.txt", "zdz", "daziran") ``` 该方法同样将"D:\zdz\"路径下的myfile.txt文件中的所有"zdz"替换为"daziran"。 希望以上方法可以帮助到您。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [用python修改文件内容修改txt内容的3方法](https://blog.csdn.net/qdPython/article/details/109513786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值