鱼C论坛

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

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

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

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

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

x
本帖最后由 yjptx121 于 2020-2-27 21:32 编辑
  1. f = open('record.txt')  #打开文件,确保打开的文件和程序处于同一文件夹内
  2. boy = []  #定义一个空列表
  3. girl = []  #定义一个空列表
  4. count = 1  #定义一个计数器
  5. for each_line in f:
  6.     if each_line[:6] != '======':   #切片:[:6]表示从0开始到5 的6个字符 如果均不为‘=’
  7.         (role, line_spoken) = each_line.split(':', 1)
  8. # ↑↑↑上句表达式含义为将以‘:’为分割符切片后的each_line分别赋值给role和line_spoken,后面的1表示只分割一次,
  9. # 因此会得到两个数据,如果为2,那么就有可能得到3个数据,以此类推
  10.         if role == '小甲鱼':  #如果切片左边(前)的数据等于小甲鱼
  11.             boy.append(line_spoken)  #那么就将切片右边(后)的数据以列表形式添加至列表boy中
  12.         if role == '小客服':      #同上
  13.             girl.append(line_spoken)       #同上
  14.     else:
  15.         file_name_boy = 'boy_' + str(count) + '.txt'    #如果是‘=’,结束切片,将文件名进行命名
  16.         file_name_girl = 'girl_' + str(count) + '.txt'  #同上

  17.         boy_file = open(file_name_boy, 'w')     #这里就是创建一个新的文件,文件名称为:'boy_' + str(count) + '.txt'
  18.         girl_file = open(file_name_girl, 'w')   #同上
  19. # ↑↑↑以上的意思是如果是‘=’,那么截取的第一段就已经完成了,然后给被截取的文件命名
  20. #这里的w是表示以可写入方式打开命名文件,如果有同名文件则覆盖原文件

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

  35. boy_file = open(file_name_boy, 'w')
  36. girl_file = open(file_name_girl, 'w')
  37. #将命名文件打开
  38. 对视频中所举例子进行了注释,有不对的地方,请指正!
  39. boy_file.writelines(boy)
  40. girl_file.writelines(girl)
  41. #将切片后的内容写入打开文件

  42. boy_file.close()
  43. girl_file.close()
  44. #↑↑↑ 以上,因为最后一段结尾没有‘=’,不符合if...else循环中的else,因此在执行完if的切片后不会执行else的写入

  45. f.close()
  46. #日常操作,关闭文件
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-1 11:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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