|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目要求:将文件(record.txt)中的数据进行分割并按照以下规律保存起来:
-小甲鱼的对话单独保存为boy_*.txt的文件(去掉“小甲鱼:”)
-小客服的对话单独保存为girl_*.txt的文件(去掉“小客服:”)
-文件中总共有三段对话,分别保存为boy_1.txt,girl_1.txt,boy_2.txt,
girl_2.txt,boy_3.txt,girl_3.txt共6个文件(提示:文件中的不同对话见已经使用“=========”分割)
文件内容:
我的代码:
- def sort_file():
- source_file = open('G:/record.txt')
- source_list = list(source_file)
- boy_1 = open('G:/boy_1.txt','w')
- boy_2 = open('G:/boy_2.txt','w')
- boy_3 = open('G:/boy_3.txt','w')
- girl_1 = open('G:/girl_1.txt','w')
- girl_2 = open('G:/girl_2.txt','w')
- girl_3 = open('G:/girl_3.txt','w')
- count = 0
- for each_line in source_list:
- count += 1
- if each_line[0:4] == '小客服:':
- girl_1.write(each_line[4:])
- elif each_line[0:4] == '小甲鱼:':
- boy_1.write(each_line[4:])
- elif each_line[0] == '=':
- boy_1.close()
- girl_1.close()
- break
-
- for each_line in source_list[count:]:
- count += 1
- if each_line[0:4] == '小客服:':
- girl_2.write(each_line[4:])
- elif each_line[0:4] == '小甲鱼:':
- boy_2.write(each_line[4:])
- elif each_line[0] == '=':
- boy_2.close()
- girl_2.close()
- break
-
- for each_line in source_list[count:]:
- count += 1
- if each_line[0:4] == '小客服:':
- girl_3.write(each_line[4:])
- elif each_line[0:4] == '小甲鱼:':
- boy_3.write(each_line[4:])
复制代码
从结果来看,我的代码可以完成题目的要求,但是有一点我很不理解,就是我在最后一个for循环处,并没有写关闭boy_3,girl_3 的代码,因为我发现,就算我不写,最后也可以写到boy_3,girl_3这两个文件中。我很不理解。。。。
请大神指点一下,按道理来说应该代码运行后boy_3,girl_3是两个空文件啊?
因为python自带垃圾回收机制,会自觉的帮你关闭,从而将缓冲区的信息写入文件
但是时间编程中最好还是自己手动关闭更好,这样才能保证数据不被篡改
|
|