【python】文件-分割文件的练习


转载+原创:http://blog.csdn.net/donkor_/article/details/62420257

任务:将文件(record.txt)中的数据进行分割并按照以下规律保存起来: 

-小甲鱼的对话单独保存为boy_*.txt的文件(去掉“小甲鱼:”) 
-小客服的对话单独保存为girl_*.txt的文件(去掉“小客服:”) 
-文件中总共有三段对话,分别保存为boy_1.txt,girl_1.txt,boy_2.txt, 

girl_2.txt,boy_3.txt,girl_3.txt共6个文件(提示:文件中的不同对话见已经使用“=========”分割)

可以从这里下载record.txt文档:链接:http://pan.baidu.com/s/1sjzAhNR(密码:tf2e)

f = open('record.txt')

boy = []
girl= []
count = 1

for each_line in f:
        if each_line[:6] !='======':
         #我们这里进行字符串分割操作
            (role,line_spoken) = each_line.split(':',1)
            if role=='小甲鱼':
                boy.append(line_spoken)
            if role=='小客服':
                girl.append(line_spoken)
        else:
        #文件的分别保存操作
            file_name_boy='boy_'+str(count)+'.txt'     
            file_name_girl='girl_'+str(count)+'.txt'

            boy_file=open(file_name_boy,'w')  #文件不存在的话会自动创建文件
            girl_file=open(file_name_girl,'w')

            boy_file.writelines(boy) #将上面读取到的内容写入新创建的文件
            girl_file.writelines(girl)

            boy_file.close() #关闭新创建的文件
            girl_file.close()

            boy = []  #将临时存储容器清空
            girl = []
            count += 1 #开始第二段内容的读取,相应的文件名字得改
    
#第三部分没有保存到文件中,因为没有分隔符了
file_name_boy='boy_'+str(count)+'.txt'     
file_name_girl='girl_'+str(count)+'.txt'

boy_file=open(file_name_boy,'w')  #创建文件
girl_file=open(file_name_girl,'w')

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

boy_file.close()
girl_file.close()


#关闭文件
f.close()
     


封装后:

#封装第一个函数:分割文件中的一个模块
def save_file(boy,girl,count):
    file_name_boy='boy_'+str(count)+'.txt'     
    file_name_girl='girl_'+str(count)+'.txt'

    boy_file=open(file_name_boy,'w')  #创建文件
    girl_file=open(file_name_girl,'w')

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

    boy_file.close()
    girl_file.close()

#封装第二个函数:分割文件
def split_file(file_name):
    f = open(file_name)

    boy = [] #用于存储临时读取出来的内容
    girl= []
    count = 1 #需要读取三次

    for each_line in f:
            if each_line[:6] !='======':
             #我们这里进行字符串分割操作
                (role,line_spoken) = each_line.split(':',1)#利用冒号分割为两部分
                if role=='小甲鱼':
                    boy.append(line_spoken)
                if role=='小客服':
                    girl.append(line_spoken)
                    
            else:
            #文件的分别保存操作
                save_file(boy,girl,count)
                boy = []
                girl = []
                count += 1
    
    #第三部分没有保存到文件中,因为没有分隔符了
    save_file(boy,girl,count)
    
    #关闭文件
    f.close()


#调用函数
split_file('record.txt')     

    






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值