鱼C论坛

 找回密码
 立即注册
查看: 1934|回复: 0

[学习笔记] 第29课视频内容

[复制链接]
发表于 2020-2-27 21:30:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yjptx121 于 2020-2-27 21:32 编辑
f = open('record.txt')  #打开文件,确保打开的文件和程序处于同一文件夹内
boy = []  #定义一个空列表
girl = []  #定义一个空列表
count = 1  #定义一个计数器
for each_line in f:
    if each_line[:6] != '======':   #切片:[:6]表示从0开始到5 的6个字符 如果均不为‘=’
        (role, line_spoken) = each_line.split(':', 1)
# ↑↑↑上句表达式含义为将以‘:’为分割符切片后的each_line分别赋值给role和line_spoken,后面的1表示只分割一次,
# 因此会得到两个数据,如果为2,那么就有可能得到3个数据,以此类推
        if role == '小甲鱼':  #如果切片左边(前)的数据等于小甲鱼
            boy.append(line_spoken)  #那么就将切片右边(后)的数据以列表形式添加至列表boy中
        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')     #这里就是创建一个新的文件,文件名称为:'boy_' + str(count) + '.txt'
        girl_file = open(file_name_girl, 'w')   #同上
# ↑↑↑以上的意思是如果是‘=’,那么截取的第一段就已经完成了,然后给被截取的文件命名
#这里的w是表示以可写入方式打开命名文件,如果有同名文件则覆盖原文件

        boy_file.writelines(boy)
        girl_file.writelines(girl)
#boy,girl均为新建的一个空列表,但是在切片时已经添加了相应的文字,而boy_file和girl_file均为之前打开
#的文本文件,此句就是讲boy,girl列表中的文字添加到文本文档:boy_'(girl_) + str(count) + '.txt中
        boy_file.close()
        girl_file.close()
#所有文件打开后都必须完成的一个操作:关闭文件
        boy = []
        girl = []
        count += 1
#初始化boy,girl列表,计数器值加1,完成第一个循环
file_name_boy = 'boy_' + str(count) + '.txt'
file_name_girl = 'girl_' + str(count) + '.txt'
#给文件命名,此时count经过两次循环,现在的值为3

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()
#↑↑↑ 以上,因为最后一段结尾没有‘=’,不符合if...else循环中的else,因此在执行完if的切片后不会执行else的写入

f.close()
#日常操作,关闭文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 09:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表