首先,先把错误的图片贴出来
1、为了准确起见,先把文件里的标点符号改为英文的
2、修改代码
修改为
这里加一个换行符就行了
原因,因为每次读取文件的内容时,是有换行符的,如果没有\n,程序将执行
这一部分,当读取文件中的 ===== 时,each_line内容是 ======\n 而if这里写的是 ===== 两者不相等,接着往下执行,用冒号对 =====\n 进行分割再赋值,只会有一个值,赋给两个变量,自然会报错。
所以,关键之处是在换行符\n
底下附全部代码
f = open('record1.txt')
#初始化两个列表
boy = []
girl = []
#初始化一个计数器
count = 1
for each_line in f:
if each_line != '=====\n':
#这里进行字符出串分割操作
role,line_spoken = each_line.split(':', 1)
if role == 'Tom' :
boy.append(line_spoken)
if role == 'Tina':
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()
看一下效果