Python中对文件的增删改查,多行字符的删除

41 篇文章 1 订阅
# Author Richard_Kong
# !/usr/bin/env python
# --*-- encoding:utf-8 --*--
"""
修改文件中的字符,并保存
"""

def alter(file,old_str,new_str):
    '''
    :param file:
    :param old_str:
    :param new_str:
    :return:
    '''
    file_data = ""

    with open(file,mode='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,mode='w',encoding="utf-8") as f:
        f.write(file_data)
def serach(file,Str):
    '''
    :param file:
    :param Str:
    :return:
    '''
    with open(file,mode='r+',encoding="utf-8") as f:
        for index,line in enumerate(f):
            if Str in line:
                print(index+1)

def add(file,Str):
    '''
    :param file:
    :param Str:
    :return:
    '''
    with open(file, mode='a+', encoding="utf-8") as f:
        f.writelines(Str)

"""
删除多行内容,
思路:
将要删除的字符串保存为文件,两个文件对比删除
"""
def delete_file(file,Str):
    '''
    :param file:
    :param Str:
    :return:
    '''

    file_new = file+"_new"
    mark = 0
    file_data = ""
    with open(file_new, mode='w', encoding="utf-8") as f_new:
        f_new.writelines(Str)

    with open(file_new, mode='r+', encoding="utf-8") as f_new:
        with open(file, mode='r+', encoding="utf-8") as f:
                for line in f:
                    mark =0
                    print("line>>>:",line)
                    f_new.seek(0)
                    for str in f_new:
                        print("str>>>:",str)
                        if str in line:
                            print("hjfbvabkj")
                            mark = 1
                            print("same line",str)
                    if mark ==1:
                        file_data +=""
                    else:
                        file_data +=line
    with open(file, mode='w', encoding="utf-8") as f:
        f.writelines(file_data)


old_str = input("Please input old String>>>:")
New_Str = input("Please input new String>>>:")
alter("sed",old_str,New_Str)
serach("sed","他们")
add("sed",Str="""arg = {
            'bakend': 'www.oldboy.org',
            'record':{
                'server': '100.1.7.9',
                'weight': 20,
                'maxconn': 30
            }
        }""")

Str="""{
            'bakend': 'www.oldboy.org',
            'record':{
                'server': '100.1.7.9',
                'weight': 20,
                'maxconn': 30
            }
        }"""
delete_file("sed",Str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值