专栏首页python3课时29:文件:一个任务

课时29:文件:一个任务

目录:

  一、一个任务

  二、课时29课后习题及答案

****************

一、一个任务

****************

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

(1)小甲鱼的对话单独保存为boy_*.txt的文件(去掉“小甲鱼:”)

(2)小客服的对话单独保存为girl_*.txt的文件(去掉“小客服:”)

(3)文件中总共有三段对话,分别保存为boy_1.txt, girl_1.txt,boy_2.txt, girl_2.txt, boy_3.txt, gril_3.txt共6个文件(提示:文件中不同的对话间已经使用“==========”分割)

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('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:
            save_file(boy, girl, count)

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

    save_file(boy, girl, count)

    f.close()


split_file('record.txt')

*******************************

二、课时29课后习题及答案

*******************************

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python3第七天(输入和输出)

    输出值的方式:1,表达式。2,print()函数。3,文件对象的write()函数

    py3study
  • 习题17:更多文件操作

    import了又一个很好用的命令exists,这个命令将文件名字符串作为参数,如果文件存在的话,它将返回True,否则将返回False

    py3study
  • 【13】Python之常用文件操作

    f=open('so_file',encoding="utf-8")  #打开文件,并读取。Windows上默认字符集GDK,所以这里指定了字符集,不然会报错。...

    py3study
  • 目录穿越漏洞修复之后再利用

    前段时间看到安全狗海青实验室发的一篇关于压缩文件解压导致 getshell 的文章。其中一个漏洞是在 zzzcms1.73 版本。而这款 CMS 自己也算是审过...

    信安之路
  • <Python脚本>批量转换less至css

    zhaoolee
  • android文件存储

    为了输出数据,要把list中存储的写到一个txt文件里,就顺手学了一下 文件存储的方法,说是学,其实又是百度之后复制粘贴。不过学到了一个关于java中的一个知识...

    用户1148523
  • PL/SQL-->UTL_FILE包的使用介绍

        在PL/SQL中,UTL_FILE包提供了文本文件输入和输出互功能。也就是说我们可以通过该包实现从操作系统级别来实现文件读取输入或者是写入到操作系统文件...

    Leshami
  • Christakis:Hard-Wired: Human Social Networks

    本期,讲堂君接着跟大家同步跟分享11月10日WE大会视频。 第七期分享《大连接》作者、联合作者医学博士、健康与社会网络专家Nicholas Christakis...

    腾讯大讲堂
  • PHP编程风格规范

    本规范由 EasyChen 借鉴 SINA网络应用开发部《C++开发规范》和互动技术部《PHP4开发规范》,以及phpDocument规范 整理出的开发规范。我...

    joshua317
  • 10分钟教你用python打造贪吃蛇超详细教程

    在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的。今天就在家研究一下, 弄了个贪吃蛇出来。希望大家喜欢哈。

    短短的路走走停停

扫码关注云+社区

领取腾讯云代金券