转载+原创:http://blog.csdn.net/donkor_/article/details/62420257
任务:将文件(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个文件(提示:文件中的不同对话见已经使用“=========”分割)
可以从这里下载record.txt文档:链接:http://pan.baidu.com/s/1sjzAhNR(密码:tf2e)
f = open('record.txt')
boy = []
girl= []
count = 1
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:
#文件的分别保存操作
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()
#封装第一个函数:分割文件中的一个模块
def 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,'w') #创建文件
girl_file=open(file_name_girl,'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
#封装第二个函数:分割文件
def split_file(file_name):
f = open(file_name)
boy = [] #用于存储临时读取出来的内容
girl= []
count = 1 #需要读取三次
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')