yjptx121 发表于 2020-2-27 21:30:57

第29课视频内容

本帖最后由 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()
#日常操作,关闭文件
页: [1]
查看完整版本: 第29课视频内容