Python 替换内容的几种方法

直接替换,使用replace()

比如要将文章里的内容,山替换为海:
在这里插入图片描述在这里插入图片描述程序运行后的效果:
在这里插入图片描述
程序附上:

import os                                         #导入模块
def replace_row():                                           #定义函数名称
    for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
           for filename in filenames:                         #遍历列表下的所有文件名
                if filename.endswith('.txt'):                #当文件名以.txt后缀结尾时
                    f = open(os.path.join(foldName,filename),"r")    #以只读模式打开文件
                    data=f.read()                                      #令data为读取的文章内容
                    data_a = data.replace("山","海")                    #将data里的山替换为海
                    with  open(os.path.join(foldName,filename), 'w') as f:          #以写模式打开文件
                        f.write(data_a)                                             # 重新写入修改后的文件内容
                        print( os.path.join(foldName,filename),'added content successfully!')   #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        replace_row()        #调用定义的函数,注意名称与定义的函数名一致

灵活替换,加入正则,使用re.sub

比如,我要将文章里以海结尾的一句话去掉,但是这句话并没有固定是一样的内容。
在这里插入图片描述在这里插入图片描述

运行后:
在这里插入图片描述

程序附上:

#!/usr/bin/python
#coding:utf-8
import os,re                                         #导入模块
def replace_row():                                           #定义函数名称
    for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
           for filename in filenames:                         #遍历列表下的所有文件名
                if filename.endswith('.txt'):                #当文件名以.txt后缀结尾时
                    f = open(os.path.join(foldName,filename),"r")    #以只读模式打开文件
                    data=f.read()                                      #令data为读取的文章内容
                    data_a =re.sub('[\u4e00-\u9fa5]*海,','',data)                    #将data里以海结尾的一句话去掉
                    with  open(os.path.join(foldName,filename), 'w') as f:          #以写模式打开文件
                        f.write(data_a)                                             # 重新写入修改后的文件内容
                        print( os.path.join(foldName,filename),'added content successfully!')   #输出提示

if __name__ == '__main__': 
        path = r'E:\我的学习\编程\Python\PythonTest2\Test2'   #运行程序前,记得修改主文件夹路径!
        replace_row()        #调用定义的函数,注意名称与定义的函数名一致
  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是这几种方法Python 代码实现: 1. 使用条件过滤 ```python import pandas as pd # 创建一个示例 DataFrame data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': [100, 200, 300, 400, 500]} df = pd.DataFrame(data) # 筛选出所有大于 3 的数据,并删除或替换 df = df[df['A'] <= 3] ``` 2. 使用统计学方法 ```python import pandas as pd import numpy as np # 创建一个示例 DataFrame data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': [100, 200, 300, 400, 500]} df = pd.DataFrame(data) # 计算 Z 分数并删除或替换超过阈的数据 z_scores = np.abs((df - df.mean()) / df.std()) df = df[(z_scores < 3).all(axis=1)] ``` 3. 使用箱线图 ```python import pandas as pd import seaborn as sns # 创建一个示例 DataFrame data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': [100, 200, 300, 400, 500]} df = pd.DataFrame(data) # 使用 seaborn 绘制箱线图并删除或替换异常 sns.boxplot(data=df) q1 = df.quantile(0.25) q3 = df.quantile(0.75) iqr = q3 - q1 df = df[~((df < (q1 - 1.5 * iqr)) | (df > (q3 + 1.5 * iqr))).any(axis=1)] ``` 4. 使用聚类方法 ```python import pandas as pd from sklearn.cluster import KMeans # 创建一个示例 DataFrame data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': [100, 200, 300, 400, 500]} df = pd.DataFrame(data) # 使用 KMeans 聚类方法并删除或替换异常 kmeans = KMeans(n_clusters=2).fit(df) labels = kmeans.labels_ centers = kmeans.cluster_centers_ distances = [np.linalg.norm(x - centers[labels[i]]) for i, x in enumerate(df.values)] df = df[distances < np.percentile(distances, 99)] ``` 以上方法仅供参考,实际应用中需要根据具体数据情况和实际需求选择合适的方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值