31讲作业
import pickledef save_file(boy, girl, count):
file_name_boy = 'boy_' + str(count) + '.txt'
file_name_girl = 'girl_' + str(count) + '.txt'
boy_file = open(file_name_boy, 'wb') # 记得一定要加 b 吖
girl_file = open(file_name_girl, 'wb') # 记得一定要加 b 吖
pickle.dump(boy, boy_file)
pickle.dump(girl, girl_file)
boy_file.close()
girl_file.close()
def split_file(file_name):
count = 1
boy = []
girl = []
f = open(file_name)
for each_line in f:
if each_line[:6] != '======':
(role, line_spoken) = each_line.split(':', 1)
if role == '小甲鱼':
boy.append(line_spoken)
if role == '小客服':
girl.append(line_spoken)
else:
save_file(boy, girl, count)
boy = []
girl = []
count += 1
save_file(boy, girl, count)
f.close()
split_file('record.txt')
为什么最后还要在调用一次save_file(boy, girl, count) 因为之前的是创建函数,现在是调用函数啦,只不过名字都一样 因为
if each_line[:6] != '======':
(role, line_spoken) = each_line.split(':', 1)
if role == '小甲鱼':
boy.append(line_spoken)
if role == '小客服':
girl.append(line_spoken)
我们每次都是以‘=======’作为分界,执行else里面的保存指令,而最后一段的下面没有等号,就不会执行
else:
save_file(boy, girl, count)
所以要在最后再写一个 save_file 读取了难道不要保存咩? 谢谢分享!
页:
[1]