分割文件内容和函数封装

封装前的代码:读取文件内容并按要求分割保存

f =open("test.txt")    #打开文件获取文件对象
boy = []
girl = []              #创建两个空列表,用于放数据
count = 1

for each_line in f:    #遍历文件每一行
    if each_line[:6] != "======":    #判断是否是文件内容另一部分
       (role,line_spoken) = each_line.split(":",1) #split(step=none,maxsplit=n)不带参数默认以空格为分割符切片字符串,maxsplit有参数则分割n个子字符串,返回切片后的子字符串拼接的列表
       if role =="小yueyue":
           boy.append(line_spoken) #append()列表追加函数,把分割后的列表分别追加进boy列表和girl列表
        if role == "小haha":
           girl.append(line_spoken)
    else:
        file_boy_name = "boy_" + str(count) + ".txt"   #定义文件名
        file_girl_name = "girl_" + str(count) + ".txt"

        boy_file =("file_boy_name",'w')         #打开文件,文件不存在的创建新文件,存在则覆盖
        girl_file = ('file_girl_name','w')

        boy_file = writelines(boy)  #writelines()针对列表的操作,接受一个字符串列表作为参数,将他们写入文件,并且行结束符不会被自动加入
        girl_file =writelines(girl)
        #当写入信息到文件对象时,.close()才会真正写进磁盘,才会显示变化
        boy_file.close()    

        girl_file.close()

        boy =[]
        girl = []
        count +=1

file_boy_name ="boy_" + str(count) +".txt"
file_girl_name ="girl_"+ str(count) + ".txt"
            
boy_file =open(file_boy_name,"w")
girl_file =open(file_girl_name,"w")

boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
封装后的代码:

def save_file(boy,girl,count):#封装写入文件的函数
    file_boy_name ="boy_" + str(count) +".txt"
    file_girl_name ="girl_"+ str(count) + ".txt"
                
    boy_file =open(file_boy_name,"w")
    girl_file =open(file_girl_name,"w")

    boy_file.writelines(boy)
    girl_file.writelines(girl)
    
    boy_file.close()
    girl_file.close()

def split_file(file_name):#封装读取文件分割文件的函数
    f =open("test.txt")
    boy = []
    girl = []
    count = 1

    for each_line in f:
        if each_line[:6] != "======":
           (role,line_spoken) = each_line.split(":",1)
           if role =="小yueyue":
               boy.append(line_spoken)
           if role == "小haha":
               girl.append(line_spoken)
        else:
            save_file(boy,girl,count) #调用第一个封装函数

            boy =[]
            girl = []
            count +=1
            
    save_file(boy,girl,count)       #调用第一个封装函数


    f.close()

split_file('test.txt')             #调用第二个函数




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值