Python对数据分割并保存为新文件(函数封装)

  • 目的
    利用Python对文件中的数据进行分割,按照以下方式保存:

  • 小芳的对话保存为 girl_*.txt 文件

  • 小明的对话保存为 boy_*.txt 文件

  • 第一段对话保存为 girl_1.txt 和 boy_1.txt,第二段保存为 girl_2.txt 和boy_2.txt…

  • 准备工作
    文件如下,文件名为test.txt
    在这里插入图片描述文件
    - 代码1
    原始的写法:

f = open('H:\\Python project\\test.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)
f.close()

- 代码2
将重复使用的代码封装成一个函数,使得代码更加简洁

def save_file(A, B, 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(A)  # 将字符串序列写入文件
    girl_file.writelines(B)

    boy_file.close()  # 关闭文件
    girl_file.close()
def split_file(file_name): # 将分割文件的代码封装成一个函数
    f = open('H:\\Python project\\test.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: # 分别对文件进行保存操作
            save_file(boy,girl,count)
            boy = []
            girl = []
            count +=1

    save_file(boy,girl,count)
    f.close()
split_file('H:\\Python project\\test.txt') # 直接调用整个分割函数

- 结果展示
在这里插入图片描述
在这里插入图片描述
这里只给出部分结果,利用博客记录下自己以前学的东西~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值