马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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()
#日常操作,关闭文件
|